diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index a03915a264..be7e9011fd 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1214,7 +1214,7 @@
/types/gm/ @ChaosinaCan @maartenvanvliet
/types/go/ @NorthwoodsSoftware
/types/google-adwords-scripts/ @jafaircl
-/types/google-apps-script/ @motemen
+/types/google-apps-script/ @motemen @grant
/types/google-apps-script-oauth2/ @dhayab
/types/google-cloud__datastore/ @beaulac
/types/google-cloud__pubsub/ @pheromonez
diff --git a/types/google-apps-script/google-apps-script.slides.d.ts b/types/google-apps-script/google-apps-script.slides.d.ts
new file mode 100644
index 0000000000..494663f002
--- /dev/null
+++ b/types/google-apps-script/google-apps-script.slides.d.ts
@@ -0,0 +1,1423 @@
+// Type definitions for Google Apps Script 2018-02-14
+// Project: https://developers.google.com/apps-script/
+// Definitions by: motemen
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+///
+///
+///
+
+declare namespace GoogleAppsScript {
+ export module Slides {
+ /**
+ * A 3x3 matrix used to transform source coordinates (x1, y1) into destination coordinates (x2, y2)
+ * according to matrix multiplication:
+ *
+ * [ x2 ] [ scaleX shearX translateX ] [ x1 ]
+ * [ y2 ] = [ shearY scaleY translateY ] [ y1 ]
+ * [ 1 ] [ 0 0 1 ] [ 1 ]
+ *
+ * After transformation,
+ *
+ * x2 = scaleX * x1 + shearX * y1 + translateX
+ * y2 = scaleY * y1 + shearY * x1 + translateY
+ */
+ export interface AffineTransform {
+ getScaleX(): Number;
+ getScaleY(): Number;
+ getShearX(): Number;
+ getShearY(): Number;
+ getTranslateX(): Number;
+ getTranslateY(): Number;
+ toBuilder(): AffineTransformBuilder;
+ }
+
+ /**
+ * A builder for AffineTransform objects. Defaults to the identity transform.
+ *
+ * Call AffineTransformBuilder#build() to get the AffineTransform object.
+ *
+ * var transform =
+ * SlidesApp.newAffineTransformBuilder().setScaleX(2.0).setShearY(1.1).build();
+ *
+ * The resulting transform matrix is
+ * [ 2.0 0.0 0.0 ]
+ * [ 1.1 1.0 0.0 ]
+ * [ 0 0 1 ]
+ */
+ export interface AffineTransformBuilder {
+ build(): AffineTransform;
+ setScaleX(scaleX: Number): AffineTransformBuilder;
+ setScaleY(scaleY: Number): AffineTransformBuilder;
+ setShearX(shearX: Number): AffineTransformBuilder;
+ setShearY(shearY: Number): AffineTransformBuilder;
+ setTranslateX(translateX: Number): AffineTransformBuilder;
+ setTranslateY(translateY: Number): AffineTransformBuilder;
+ }
+
+ /**
+ * The alignment position to apply.
+ */
+ export enum AlignmentPosition { CENTER, HORIZONTAL_CENTER, VERTICAL_CENTER }
+
+ /**
+ * The kinds of start and end forms with which linear geometry can be rendered.
+ *
+ * Some values are based on the "ST_LineEndType" simple type described in section 20.1.10.33 of
+ * of "Office Open XML File Formats - Fundamentals and Markup Language Reference", part 1 of ECMA-376 4th
+ * edition.
+ */
+ export enum ArrowStyle { UNSUPPORTED, NONE, STEALTH_ARROW, FILL_ARROW, FILL_CIRCLE, FILL_SQUARE, FILL_DIAMOND, OPEN_ARROW, OPEN_CIRCLE, OPEN_SQUARE, OPEN_DIAMOND }
+
+ /**
+ * An element of text that is dynamically replaced with content that can change over time, such as a
+ * slide number.
+ */
+ export interface AutoText {
+ getAutoTextType(): AutoTextType;
+ getIndex(): Integer;
+ getRange(): TextRange;
+ }
+
+ /**
+ * The types of auto text.
+ */
+ export enum AutoTextType { UNSUPPORTED, SLIDE_NUMBER }
+
+ /**
+ * Describes the border around an element.
+ */
+ export interface Border {
+ getDashStyle(): DashStyle;
+ getLineFill(): LineFill;
+ getWeight(): Number;
+ isVisible(): boolean;
+ setDashStyle(style: DashStyle): Border;
+ setTransparent(): Border;
+ setWeight(points: Number): Border;
+ }
+
+ /**
+ * The table cell merge states.
+ */
+ export enum CellMergeState { NORMAL, HEAD, MERGED }
+
+ /**
+ * An opaque color
+ */
+ export interface Color {
+ asRgbColor(): RgbColor;
+ asThemeColor(): ThemeColor;
+ getColorType(): ColorType;
+ }
+
+ /**
+ * A color scheme defines a mapping from members of ThemeColorType to the actual colors used
+ * to render them.
+ */
+ export interface ColorScheme {
+ getConcreteColor(theme: ThemeColorType): Color;
+ getThemeColors(): ThemeColorType[];
+ }
+
+ /**
+ * The types of Colors
+ */
+ export enum ColorType { UNSUPPORTED, RGB, THEME }
+
+ /**
+ * The content alignments for a Shape or TableCell. The supported alignments
+ * correspond to predefined text anchoring types from the ECMA-376 standard.
+ *
+ * More information on those alignments can be found in the description of
+ * the ST_TextAnchoringType simple type in section 20.1.10.59 of "Office Open XML File
+ * Formats - Fundamentals and Markup Language Reference", part 1 of ECMA-376 4th
+ * edition.
+ */
+ export enum ContentAlignment { UNSUPPORTED, TOP, MIDDLE, BOTTOM }
+
+ /**
+ * The kinds of dashes with which linear geometry can be rendered. These values are based on the
+ * "ST_PresetLineDashVal" simple type described in section 20.1.10.48 of "Office Open XML File
+ * Formats - Fundamentals and Markup Language Reference", part 1 of ECMA-376 4th
+ * edition.
+ */
+ export enum DashStyle { UNSUPPORTED, SOLID, DOT, DASH, DASH_DOT, LONG_DASH, LONG_DASH_DOT }
+
+ /**
+ * Describes the page element's background
+ */
+ export interface Fill {
+ getSolidFill(): SolidFill;
+ getType(): FillType;
+ isVisible(): boolean;
+ setSolidFill(color: Color): void;
+ setSolidFill(color: Color, alpha: Number): void;
+ setSolidFill(red: Integer, green: Integer, blue: Integer): void;
+ setSolidFill(red: Integer, green: Integer, blue: Integer, alpha: Number): void;
+ setSolidFill(hexString: string): void;
+ setSolidFill(hexString: string, alpha: Number): void;
+ setSolidFill(color: ThemeColorType): void;
+ setSolidFill(color: ThemeColorType, alpha: Number): void;
+ setTransparent(): void;
+ }
+
+ /**
+ * The kinds of fill.
+ */
+ export enum FillType { UNSUPPORTED, NONE, SOLID }
+
+ /**
+ * A collection of PageElements joined as a single unit.
+ */
+ export interface Group {
+ alignOnPage(alignmentPosition: AlignmentPosition): Group;
+ duplicate(): PageElement;
+ getChildren(): PageElement[];
+ getDescription(): string;
+ getHeight(): Number;
+ getInherentHeight(): Number;
+ getInherentWidth(): Number;
+ getLeft(): Number;
+ getObjectId(): string;
+ getPageElementType(): PageElementType;
+ getParentGroup(): Group;
+ getParentPage(): Page;
+ getRotation(): Number;
+ getTitle(): string;
+ getTop(): Number;
+ getTransform(): AffineTransform;
+ getWidth(): Number;
+ preconcatenateTransform(transform: AffineTransform): Group;
+ remove(): void;
+ scaleHeight(ratio: Number): Group;
+ scaleWidth(ratio: Number): Group;
+ select(): void;
+ select(replace: boolean): void;
+ setHeight(height: Number): Group;
+ setLeft(left: Number): Group;
+ setRotation(angle: Number): Group;
+ setTop(top: Number): Group;
+ setTransform(transform: AffineTransform): Group;
+ setWidth(width: Number): Group;
+ ungroup(): void;
+ }
+
+ /**
+ * A PageElement representing an image.
+ */
+ export interface Image {
+ alignOnPage(alignmentPosition: AlignmentPosition): Image;
+ duplicate(): PageElement;
+ getBorder(): Border;
+ getContentUrl(): string;
+ getDescription(): string;
+ getHeight(): Number;
+ getInherentHeight(): Number;
+ getInherentWidth(): Number;
+ getLeft(): Number;
+ getLink(): Link;
+ getObjectId(): string;
+ getPageElementType(): PageElementType;
+ getParentGroup(): Group;
+ getParentPage(): Page;
+ getRotation(): Number;
+ getSourceUrl(): string;
+ getTitle(): string;
+ getTop(): Number;
+ getTransform(): AffineTransform;
+ getWidth(): Number;
+ preconcatenateTransform(transform: AffineTransform): Image;
+ remove(): void;
+ removeLink(): void;
+ replace(blobSource: Base.BlobSource): Image;
+ replace(blobSource: Base.BlobSource, crop: boolean): Image;
+ replace(imageUrl: string): Image;
+ replace(imageUrl: string, crop: boolean): Image;
+ scaleHeight(ratio: Number): Image;
+ scaleWidth(ratio: Number): Image;
+ select(): void;
+ select(replace: boolean): void;
+ setHeight(height: Number): Image;
+ setLeft(left: Number): Image;
+ setLinkSlide(slideIndex: Integer): Link;
+ setLinkSlide(slide: Slide): Link;
+ setLinkSlide(slidePosition: SlidePosition): Link;
+ setLinkUrl(url: string): Link;
+ setRotation(angle: Number): Image;
+ setTop(top: Number): Image;
+ setTransform(transform: AffineTransform): Image;
+ setWidth(width: Number): Image;
+ }
+
+ /**
+ * A layout in a presentation.
+ *
+ * Each layout serves as a template for slides that inherit from it, determining how content on
+ * those slides is arranged and styled.
+ */
+ export interface Layout {
+ getBackground(): PageBackground;
+ getColorScheme(): ColorScheme;
+ getGroups(): Group[];
+ getImages(): Image[];
+ getLayoutName(): string;
+ getLines(): Line[];
+ getMaster(): Master;
+ getObjectId(): string;
+ getPageElements(): PageElement[];
+ getPageType(): PageType;
+ getPlaceholder(placeholderType: PlaceholderType): PageElement;
+ getPlaceholder(placeholderType: PlaceholderType, placeholderIndex: Integer): PageElement;
+ getPlaceholders(): PageElement[];
+ getShapes(): Shape[];
+ getSheetsCharts(): SheetsChart[];
+ getTables(): Table[];
+ getVideos(): Video[];
+ getWordArts(): WordArt[];
+ group(pageElements: PageElement[]): Group;
+ insertGroup(group: Group): Group;
+ insertImage(blobSource: Base.BlobSource): Image;
+ insertImage(blobSource: Base.BlobSource, left: Number, top: Number, width: Number, height: Number): Image;
+ insertImage(image: Image): Image;
+ insertImage(imageUrl: string): Image;
+ insertImage(imageUrl: string, left: Number, top: Number, width: Number, height: Number): Image;
+ insertLine(line: Line): Line;
+ insertLine(lineCategory: LineCategory, startLeft: Number, startTop: Number, endLeft: Number, endTop: Number): Line;
+ insertPageElement(pageElement: PageElement): PageElement;
+ insertShape(shape: Shape): Shape;
+ insertShape(shapeType: ShapeType): Shape;
+ insertShape(shapeType: ShapeType, left: Number, top: Number, width: Number, height: Number): Shape;
+ insertSheetsChart(sourceChart: Spreadsheet.EmbeddedChart): SheetsChart;
+ insertSheetsChart(sourceChart: Spreadsheet.EmbeddedChart, left: Number, top: Number, width: Number, height: Number): SheetsChart;
+ insertSheetsChart(sheetsChart: SheetsChart): SheetsChart;
+ insertSheetsChartAsImage(sourceChart: Spreadsheet.EmbeddedChart): Image;
+ insertSheetsChartAsImage(sourceChart: Spreadsheet.EmbeddedChart, left: Number, top: Number, width: Number, height: Number): Image;
+ insertTable(numRows: Integer, numColumns: Integer): Table;
+ insertTable(numRows: Integer, numColumns: Integer, left: Number, top: Number, width: Number, height: Number): Table;
+ insertTable(table: Table): Table;
+ insertVideo(videoUrl: string): Video;
+ insertVideo(videoUrl: string, left: Number, top: Number, width: Number, height: Number): Video;
+ insertVideo(video: Video): Video;
+ insertWordArt(wordArt: WordArt): WordArt;
+ remove(): void;
+ replaceAllText(findText: string, replaceText: string): Integer;
+ replaceAllText(findText: string, replaceText: string, matchCase: boolean): Integer;
+ selectAsCurrentPage(): void;
+ }
+
+ /**
+ * A PageElement representing a line.
+ */
+ export interface Line {
+ alignOnPage(alignmentPosition: AlignmentPosition): Line;
+ duplicate(): PageElement;
+ getDashStyle(): DashStyle;
+ getDescription(): string;
+ getEnd(): Point;
+ getEndArrow(): ArrowStyle;
+ getHeight(): Number;
+ getInherentHeight(): Number;
+ getInherentWidth(): Number;
+ getLeft(): Number;
+ getLineFill(): LineFill;
+ getLineType(): LineType;
+ getLink(): Link;
+ getObjectId(): string;
+ getPageElementType(): PageElementType;
+ getParentGroup(): Group;
+ getParentPage(): Page;
+ getRotation(): Number;
+ getStart(): Point;
+ getStartArrow(): ArrowStyle;
+ getTitle(): string;
+ getTop(): Number;
+ getTransform(): AffineTransform;
+ getWeight(): Number;
+ getWidth(): Number;
+ preconcatenateTransform(transform: AffineTransform): Line;
+ remove(): void;
+ removeLink(): void;
+ scaleHeight(ratio: Number): Line;
+ scaleWidth(ratio: Number): Line;
+ select(): void;
+ select(replace: boolean): void;
+ setDashStyle(style: DashStyle): Line;
+ setEnd(left: Number, top: Number): Line;
+ setEnd(point: Point): Line;
+ setEndArrow(style: ArrowStyle): Line;
+ setHeight(height: Number): Line;
+ setLeft(left: Number): Line;
+ setLinkSlide(slideIndex: Integer): Link;
+ setLinkSlide(slide: Slide): Link;
+ setLinkSlide(slidePosition: SlidePosition): Link;
+ setLinkUrl(url: string): Link;
+ setRotation(angle: Number): Line;
+ setStart(left: Number, top: Number): Line;
+ setStart(point: Point): Line;
+ setStartArrow(style: ArrowStyle): Line;
+ setTop(top: Number): Line;
+ setTransform(transform: AffineTransform): Line;
+ setWeight(points: Number): Line;
+ setWidth(width: Number): Line;
+ }
+
+ /**
+ * The line category.
+ *
+ * The exact LineType created is determined based on the category and how it's routed to
+ * connect to other page elements.
+ */
+ export enum LineCategory { STRAIGHT, BENT, CURVED }
+
+ /**
+ * Describes the fill of a line or outline
+ */
+ export interface LineFill {
+ getFillType(): LineFillType;
+ getSolidFill(): SolidFill;
+ setSolidFill(color: Color): void;
+ setSolidFill(color: Color, alpha: Number): void;
+ setSolidFill(red: Integer, green: Integer, blue: Integer): void;
+ setSolidFill(red: Integer, green: Integer, blue: Integer, alpha: Number): void;
+ setSolidFill(hexString: string): void;
+ setSolidFill(hexString: string, alpha: Number): void;
+ setSolidFill(color: ThemeColorType): void;
+ setSolidFill(color: ThemeColorType, alpha: Number): void;
+ }
+
+ /**
+ * The kinds of line fill.
+ */
+ export enum LineFillType { UNSUPPORTED, NONE, SOLID }
+
+ /**
+ * The line types.
+ *
+ * Derived from a subset of the values of the "ST_ShapeType" simple type in section 20.1.10.55 of
+ * "Office Open XML File Formats - Fundamentals and Markup Language Reference", part 1 of ECMA-376 4th
+ * edition.
+ */
+ export enum LineType { UNSUPPORTED, STRAIGHT_CONNECTOR_1, BENT_CONNECTOR_2, BENT_CONNECTOR_3, BENT_CONNECTOR_4, BENT_CONNECTOR_5, CURVED_CONNECTOR_2, CURVED_CONNECTOR_3, CURVED_CONNECTOR_4, CURVED_CONNECTOR_5 }
+
+ /**
+ * A hypertext link.
+ */
+ export interface Link {
+ getLinkType(): LinkType;
+ getLinkedSlide(): Slide;
+ getSlideId(): string;
+ getSlideIndex(): Integer;
+ getSlidePosition(): SlidePosition;
+ getUrl(): string;
+ }
+
+ /**
+ * The types of a Link.
+ */
+ export enum LinkType { UNSUPPORTED, URL, SLIDE_POSITION, SLIDE_ID, SLIDE_INDEX }
+
+ /**
+ * A list in the text.
+ */
+ export interface List {
+ getListId(): string;
+ getListParagraphs(): Paragraph[];
+ }
+
+ /**
+ * Preset patterns of glyphs for lists in text.
+ *
+ * These presets use these glyphs:
+ *
+ * ARROW: An arrow, ➔, corresponding to a Unicode U+2794 code point
+ *
+ * ARROW3D: An arrow with 3D shading, ➢, corresponding to a Unicode U+27a2 code point
+ *
+ * CHECKBOX: A hollow square, ❏, corresponding to a Unicode U+274f code point
+ *
+ * CIRCLE: A hollow circle, ○, corresponding to a Unicode U+25cb code point
+ *
+ * DIAMOND: A solid diamond, ◆, corresponding to a Unicode U+25c6 code point
+ *
+ * `DIAMONDX: A diamond with an 'x', ❖, corresponding to a Unicode U+2756 code point
+ *
+ * HOLLOWDIAMOND: A hollow diamond, ◇, corresponding to a Unicode U+25c7 code point
+ *
+ * DISC: A solid circle, ●, corresponding to a Unicode U+25cf code point
+ *
+ * SQUARE: A solid square, ■, corresponding to a Unicode U+25a0 code point
+ *
+ * STAR: A star, ★, corresponding to a Unicode U+2605 code point
+ *
+ * ALPHA: A lowercase letter, like 'a', 'b', or 'c'.
+ *
+ * UPPERALPHA: An uppercase letter, like 'A', 'B', or 'C'.
+ *
+ * DIGIT: A number, like '1', '2', or '3'.
+ *
+ * ZERODIGIT: A number where single digit numbers are prefixed with a zero, like '01', '02',
+ * or '03'. Numbers with more than one digit are not prefixed a zero.
+ *
+ * ROMAN: A lowercase roman numeral, like 'i', 'ii', or 'iii'.
+ *
+ * UPPERROMAN: A uppercase roman numeral, like 'I', 'II', or 'III'.
+ *
+ * LEFTTRIANGLE: A triangle pointing left, ◄, corresponding to a Unicode U+25c4 code
+ * point
+ */
+ export enum ListPreset { DISC_CIRCLE_SQUARE, DIAMONDX_ARROW3D_SQUARE, CHECKBOX, ARROW_DIAMOND_DISC, STAR_CIRCLE_SQUARE, ARROW3D_CIRCLE_SQUARE, LEFTTRIANGLE_DIAMOND_DISC, DIAMONDX_HOLLOWDIAMOND_SQUARE, DIAMOND_CIRCLE_SQUARE, DIGIT_ALPHA_ROMAN, DIGIT_ALPHA_ROMAN_PARENS, DIGIT_NESTED, UPPERALPHA_ALPHA_ROMAN, UPPERROMAN_UPPERALPHA_DIGIT, ZERODIGIT_ALPHA_ROMAN }
+
+ /**
+ * The list styling for a range of text.
+ */
+ export interface ListStyle {
+ applyListPreset(listPreset: ListPreset): ListStyle;
+ getGlyph(): string;
+ getList(): List;
+ getNestingLevel(): Integer;
+ isInList(): boolean;
+ removeFromList(): ListStyle;
+ }
+
+ /**
+ * A master in a presentation.
+ *
+ * Masters contains all common page elements and the common properties for a set of layouts. They
+ * serve three purposes:
+ *
+ * Placeholder shapes on a master contain the default text styles and shape properties of all
+ * placeholder shapes on pages that use that master.
+ *
+ * The properties of a master page define the common page properties inherited by its layouts.
+ *
+ * Any other shapes on the master slide appear on all slides using that master, regardless of
+ * their layout.
+ */
+ export interface Master {
+ getBackground(): PageBackground;
+ getColorScheme(): ColorScheme;
+ getGroups(): Group[];
+ getImages(): Image[];
+ getLayouts(): Layout[];
+ getLines(): Line[];
+ getObjectId(): string;
+ getPageElements(): PageElement[];
+ getPageType(): PageType;
+ getPlaceholder(placeholderType: PlaceholderType): PageElement;
+ getPlaceholder(placeholderType: PlaceholderType, placeholderIndex: Integer): PageElement;
+ getPlaceholders(): PageElement[];
+ getShapes(): Shape[];
+ getSheetsCharts(): SheetsChart[];
+ getTables(): Table[];
+ getVideos(): Video[];
+ getWordArts(): WordArt[];
+ group(pageElements: PageElement[]): Group;
+ insertGroup(group: Group): Group;
+ insertImage(blobSource: Base.BlobSource): Image;
+ insertImage(blobSource: Base.BlobSource, left: Number, top: Number, width: Number, height: Number): Image;
+ insertImage(image: Image): Image;
+ insertImage(imageUrl: string): Image;
+ insertImage(imageUrl: string, left: Number, top: Number, width: Number, height: Number): Image;
+ insertLine(line: Line): Line;
+ insertLine(lineCategory: LineCategory, startLeft: Number, startTop: Number, endLeft: Number, endTop: Number): Line;
+ insertPageElement(pageElement: PageElement): PageElement;
+ insertShape(shape: Shape): Shape;
+ insertShape(shapeType: ShapeType): Shape;
+ insertShape(shapeType: ShapeType, left: Number, top: Number, width: Number, height: Number): Shape;
+ insertSheetsChart(sourceChart: Spreadsheet.EmbeddedChart): SheetsChart;
+ insertSheetsChart(sourceChart: Spreadsheet.EmbeddedChart, left: Number, top: Number, width: Number, height: Number): SheetsChart;
+ insertSheetsChart(sheetsChart: SheetsChart): SheetsChart;
+ insertSheetsChartAsImage(sourceChart: Spreadsheet.EmbeddedChart): Image;
+ insertSheetsChartAsImage(sourceChart: Spreadsheet.EmbeddedChart, left: Number, top: Number, width: Number, height: Number): Image;
+ insertTable(numRows: Integer, numColumns: Integer): Table;
+ insertTable(numRows: Integer, numColumns: Integer, left: Number, top: Number, width: Number, height: Number): Table;
+ insertTable(table: Table): Table;
+ insertVideo(videoUrl: string): Video;
+ insertVideo(videoUrl: string, left: Number, top: Number, width: Number, height: Number): Video;
+ insertVideo(video: Video): Video;
+ insertWordArt(wordArt: WordArt): WordArt;
+ remove(): void;
+ replaceAllText(findText: string, replaceText: string): Integer;
+ replaceAllText(findText: string, replaceText: string, matchCase: boolean): Integer;
+ selectAsCurrentPage(): void;
+ }
+
+ /**
+ * A notes master in a presentation.
+ *
+ * Notes masters define the default text styles and page elements for all notes pages. Notes
+ * masters are read-only.
+ */
+ export interface NotesMaster {
+ getGroups(): Group[];
+ getImages(): Image[];
+ getLines(): Line[];
+ getObjectId(): string;
+ getPageElements(): PageElement[];
+ getPlaceholder(placeholderType: PlaceholderType): PageElement;
+ getPlaceholder(placeholderType: PlaceholderType, placeholderIndex: Integer): PageElement;
+ getPlaceholders(): PageElement[];
+ getShapes(): Shape[];
+ getSheetsCharts(): SheetsChart[];
+ getTables(): Table[];
+ getVideos(): Video[];
+ getWordArts(): WordArt[];
+ }
+
+ /**
+ * A notes page in a presentation.
+ *
+ * These pages contain the content for presentation handouts, including a a shape that contains
+ * the slide's speaker notes. Each slide has one corresponding notes page. Only the text in the
+ * speaker notes shape can be modified.
+ */
+ export interface NotesPage {
+ getGroups(): Group[];
+ getImages(): Image[];
+ getLines(): Line[];
+ getObjectId(): string;
+ getPageElements(): PageElement[];
+ getPlaceholder(placeholderType: PlaceholderType): PageElement;
+ getPlaceholder(placeholderType: PlaceholderType, placeholderIndex: Integer): PageElement;
+ getPlaceholders(): PageElement[];
+ getShapes(): Shape[];
+ getSheetsCharts(): SheetsChart[];
+ getSpeakerNotesShape(): Shape;
+ getTables(): Table[];
+ getVideos(): Video[];
+ getWordArts(): WordArt[];
+ replaceAllText(findText: string, replaceText: string): Integer;
+ replaceAllText(findText: string, replaceText: string, matchCase: boolean): Integer;
+ }
+
+ /**
+ * A page in a presentation.
+ */
+ export interface Page {
+ asLayout(): Layout;
+ asMaster(): Master;
+ asSlide(): Slide;
+ getBackground(): PageBackground;
+ getColorScheme(): ColorScheme;
+ getGroups(): Group[];
+ getImages(): Image[];
+ getLines(): Line[];
+ getObjectId(): string;
+ getPageElements(): PageElement[];
+ getPageType(): PageType;
+ getPlaceholder(placeholderType: PlaceholderType): PageElement;
+ getPlaceholder(placeholderType: PlaceholderType, placeholderIndex: Integer): PageElement;
+ getPlaceholders(): PageElement[];
+ getShapes(): Shape[];
+ getSheetsCharts(): SheetsChart[];
+ getTables(): Table[];
+ getVideos(): Video[];
+ getWordArts(): WordArt[];
+ group(pageElements: PageElement[]): Group;
+ insertGroup(group: Group): Group;
+ insertImage(blobSource: Base.BlobSource): Image;
+ insertImage(blobSource: Base.BlobSource, left: Number, top: Number, width: Number, height: Number): Image;
+ insertImage(image: Image): Image;
+ insertImage(imageUrl: string): Image;
+ insertImage(imageUrl: string, left: Number, top: Number, width: Number, height: Number): Image;
+ insertLine(line: Line): Line;
+ insertLine(lineCategory: LineCategory, startLeft: Number, startTop: Number, endLeft: Number, endTop: Number): Line;
+ insertPageElement(pageElement: PageElement): PageElement;
+ insertShape(shape: Shape): Shape;
+ insertShape(shapeType: ShapeType): Shape;
+ insertShape(shapeType: ShapeType, left: Number, top: Number, width: Number, height: Number): Shape;
+ insertSheetsChart(sourceChart: Spreadsheet.EmbeddedChart): SheetsChart;
+ insertSheetsChart(sourceChart: Spreadsheet.EmbeddedChart, left: Number, top: Number, width: Number, height: Number): SheetsChart;
+ insertSheetsChart(sheetsChart: SheetsChart): SheetsChart;
+ insertSheetsChartAsImage(sourceChart: Spreadsheet.EmbeddedChart): Image;
+ insertSheetsChartAsImage(sourceChart: Spreadsheet.EmbeddedChart, left: Number, top: Number, width: Number, height: Number): Image;
+ insertTable(numRows: Integer, numColumns: Integer): Table;
+ insertTable(numRows: Integer, numColumns: Integer, left: Number, top: Number, width: Number, height: Number): Table;
+ insertTable(table: Table): Table;
+ insertVideo(videoUrl: string): Video;
+ insertVideo(videoUrl: string, left: Number, top: Number, width: Number, height: Number): Video;
+ insertVideo(video: Video): Video;
+ insertWordArt(wordArt: WordArt): WordArt;
+ remove(): void;
+ replaceAllText(findText: string, replaceText: string): Integer;
+ replaceAllText(findText: string, replaceText: string, matchCase: boolean): Integer;
+ selectAsCurrentPage(): void;
+ }
+
+ /**
+ * Describes the page's background
+ */
+ export interface PageBackground {
+ getPictureFill(): PictureFill;
+ getSolidFill(): SolidFill;
+ getType(): PageBackgroundType;
+ isVisible(): boolean;
+ setPictureFill(blobSource: Base.BlobSource): void;
+ setPictureFill(imageUrl: string): void;
+ setSolidFill(color: Color): void;
+ setSolidFill(color: Color, alpha: Number): void;
+ setSolidFill(red: Integer, green: Integer, blue: Integer): void;
+ setSolidFill(red: Integer, green: Integer, blue: Integer, alpha: Number): void;
+ setSolidFill(hexString: string): void;
+ setSolidFill(hexString: string, alpha: Number): void;
+ setSolidFill(color: ThemeColorType): void;
+ setSolidFill(color: ThemeColorType, alpha: Number): void;
+ setTransparent(): void;
+ }
+
+ /**
+ * The kinds of page backgrounds.
+ */
+ export enum PageBackgroundType { UNSUPPORTED, NONE, SOLID, PICTURE }
+
+ /**
+ * A visual element rendered on a page.
+ */
+ export interface PageElement {
+ alignOnPage(alignmentPosition: AlignmentPosition): PageElement;
+ asGroup(): Group;
+ asImage(): Image;
+ asLine(): Line;
+ asShape(): Shape;
+ asSheetsChart(): SheetsChart;
+ asTable(): Table;
+ asVideo(): Video;
+ asWordArt(): WordArt;
+ duplicate(): PageElement;
+ getDescription(): string;
+ getHeight(): Number;
+ getInherentHeight(): Number;
+ getInherentWidth(): Number;
+ getLeft(): Number;
+ getObjectId(): string;
+ getPageElementType(): PageElementType;
+ getParentGroup(): Group;
+ getParentPage(): Page;
+ getRotation(): Number;
+ getTitle(): string;
+ getTop(): Number;
+ getTransform(): AffineTransform;
+ getWidth(): Number;
+ preconcatenateTransform(transform: AffineTransform): PageElement;
+ remove(): void;
+ scaleHeight(ratio: Number): PageElement;
+ scaleWidth(ratio: Number): PageElement;
+ select(): void;
+ select(replace: boolean): void;
+ setHeight(height: Number): PageElement;
+ setLeft(left: Number): PageElement;
+ setRotation(angle: Number): PageElement;
+ setTop(top: Number): PageElement;
+ setTransform(transform: AffineTransform): PageElement;
+ setWidth(width: Number): PageElement;
+ }
+
+ /**
+ * A collection of one or more PageElement instances.
+ */
+ export interface PageElementRange {
+ getPageElements(): PageElement[];
+ }
+
+ /**
+ * The page element type.
+ */
+ export enum PageElementType { UNSUPPORTED, SHAPE, IMAGE, VIDEO, TABLE, GROUP, LINE, WORD_ART, SHEETS_CHART }
+
+ /**
+ * A collection of one or more Page instances.
+ */
+ export interface PageRange {
+ getPages(): Page[];
+ }
+
+ /**
+ * The page types.
+ */
+ export enum PageType { UNSUPPORTED, SLIDE, LAYOUT, MASTER }
+
+ /**
+ * A segment of text terminated by a newline character.
+ */
+ export interface Paragraph {
+ getIndex(): Integer;
+ getRange(): TextRange;
+ }
+
+ /**
+ * The types of text alignment for a paragraph.
+ */
+ export enum ParagraphAlignment { UNSUPPORTED, START, CENTER, END, JUSTIFIED }
+
+ /**
+ * The styles of text that apply to entire paragraphs.
+ *
+ * Read methods in this class return null if the corresponding TextRange spans
+ * multiple paragraphs, and those paragraphs have different values for the read method being called.
+ * To avoid this, query for paragraph styles using the TextRange returned by the Paragraph.getRange() method.
+ */
+ export interface ParagraphStyle {
+ getIndentEnd(): Number;
+ getIndentFirstLine(): Number;
+ getIndentStart(): Number;
+ getLineSpacing(): Number;
+ getParagraphAlignment(): ParagraphAlignment;
+ getSpaceAbove(): Number;
+ getSpaceBelow(): Number;
+ getSpacingMode(): SpacingMode;
+ getTextDirection(): TextDirection;
+ setIndentEnd(indent: Number): ParagraphStyle;
+ setIndentFirstLine(indent: Number): ParagraphStyle;
+ setIndentStart(indent: Number): ParagraphStyle;
+ setLineSpacing(spacing: Number): ParagraphStyle;
+ setParagraphAlignment(alignment: ParagraphAlignment): ParagraphStyle;
+ setSpaceAbove(space: Number): ParagraphStyle;
+ setSpaceBelow(space: Number): ParagraphStyle;
+ setSpacingMode(mode: SpacingMode): ParagraphStyle;
+ setTextDirection(direction: TextDirection): ParagraphStyle;
+ }
+
+ /**
+ * A fill that renders an image that's stretched to the dimensions of its container.
+ */
+ export interface PictureFill {
+ getContentUrl(): string;
+ getSourceUrl(): string;
+ }
+
+ /**
+ * The placeholder types. Many of these placeholder types correspond to placeholder IDs from the
+ * ECMA-376 standard. More information on those shapes can be found in the description of the
+ * "ST_PlaceholderType" type in section 19.7.10 of "Office Open XML File Formats - Fundamentals and
+ * Markup Language Reference", part 1 of ECMA-376 5th
+ * edition.
+ */
+ export enum PlaceholderType { UNSUPPORTED, NONE, BODY, CHART, CLIP_ART, CENTERED_TITLE, DIAGRAM, DATE_AND_TIME, FOOTER, HEADER, MEDIA, OBJECT, PICTURE, SLIDE_NUMBER, SUBTITLE, TABLE, TITLE, SLIDE_IMAGE }
+
+ /**
+ * A point representing a location.
+ */
+ export interface Point {
+ getX(): Number;
+ getY(): Number;
+ }
+
+ /**
+ * Predefined layouts. These are commonly found layouts in presentations. However, there is no
+ * guarantee that these layouts are present in the current master as they could have been deleted or
+ * not part of the used theme. Additionally, the placeholders on each layout may have been changed.
+ */
+ export enum PredefinedLayout { UNSUPPORTED, BLANK, CAPTION_ONLY, TITLE, TITLE_AND_BODY, TITLE_AND_TWO_COLUMNS, TITLE_ONLY, SECTION_HEADER, SECTION_TITLE_AND_DESCRIPTION, ONE_COLUMN_TEXT, MAIN_POINT, BIG_NUMBER }
+
+ /**
+ * A presentation.
+ */
+ export interface Presentation {
+ addEditor(emailAddress: string): Presentation;
+ addEditor(user: Base.User): Presentation;
+ addEditors(emailAddresses: String[]): Presentation;
+ addViewer(emailAddress: string): Presentation;
+ addViewer(user: Base.User): Presentation;
+ addViewers(emailAddresses: String[]): Presentation;
+ appendSlide(): Slide;
+ appendSlide(layout: Layout): Slide;
+ appendSlide(predefinedLayout: PredefinedLayout): Slide;
+ appendSlide(slide: Slide): Slide;
+ getEditors(): Base.User[];
+ getId(): string;
+ getLayouts(): Layout[];
+ getMasters(): Master[];
+ getName(): string;
+ getNotesMaster(): NotesMaster;
+ getNotesPageHeight(): Number;
+ getNotesPageWidth(): Number;
+ getPageHeight(): Number;
+ getPageWidth(): Number;
+ getSelection(): Selection;
+ getSlides(): Slide[];
+ getUrl(): string;
+ getViewers(): Base.User[];
+ insertSlide(insertionIndex: Integer): Slide;
+ insertSlide(insertionIndex: Integer, layout: Layout): Slide;
+ insertSlide(insertionIndex: Integer, predefinedLayout: PredefinedLayout): Slide;
+ insertSlide(insertionIndex: Integer, slide: Slide): Slide;
+ removeEditor(emailAddress: string): Presentation;
+ removeEditor(user: Base.User): Presentation;
+ removeViewer(emailAddress: string): Presentation;
+ removeViewer(user: Base.User): Presentation;
+ replaceAllText(findText: string, replaceText: string): Integer;
+ replaceAllText(findText: string, replaceText: string, matchCase: boolean): Integer;
+ saveAndClose(): void;
+ setName(name: string): void;
+ }
+
+ /**
+ * A color defined by red, green, blue color channels.
+ */
+ export interface RgbColor {
+ asHexString(): string;
+ getBlue(): Integer;
+ getColorType(): ColorType;
+ getGreen(): Integer;
+ getRed(): Integer;
+ }
+
+ /**
+ * The user's selection in the active presentation.
+ *
+ * var selection = SlidesApp.getActivePresentation().getSelection();
+ * var currentPage = selection.getCurrentPage();
+ * var selectionType = selection.getSelectionType();
+ * }
+ */
+ export interface Selection {
+ getCurrentPage(): Page;
+ getPageElementRange(): PageElementRange;
+ getPageRange(): PageRange;
+ getSelectionType(): SelectionType;
+ getTableCellRange(): TableCellRange;
+ getTextRange(): TextRange;
+ }
+
+ /**
+ * Type of Selection.
+ *
+ * The SelectionType represents the most specific type of one or more objects that are
+ * selected. As an example if one or more TableCell instances are selected in a Table, the selection type is SelectionType.TABLE_CELL. The TableCellRange can be
+ * retrieved by using the Selection.getTableCellRange. The Table can be retrieved by
+ * using the Selection.getPageElementRange and the Page can be retrieved from the
+ * Selection.getCurrentPage.
+ */
+ export enum SelectionType { UNSUPPORTED, NONE, TEXT, TABLE_CELL, PAGE, PAGE_ELEMENT, CURRENT_PAGE }
+
+ /**
+ * A PageElement representing a generic shape that does not have a more specific
+ * classification. Includes text boxes, rectangles, and other predefined shapes.
+ */
+ export interface Shape {
+ alignOnPage(alignmentPosition: AlignmentPosition): Shape;
+ duplicate(): PageElement;
+ getBorder(): Border;
+ getContentAlignment(): ContentAlignment;
+ getDescription(): string;
+ getFill(): Fill;
+ getHeight(): Number;
+ getInherentHeight(): Number;
+ getInherentWidth(): Number;
+ getLeft(): Number;
+ getLink(): Link;
+ getObjectId(): string;
+ getPageElementType(): PageElementType;
+ getParentGroup(): Group;
+ getParentPage(): Page;
+ getParentPlaceholder(): PageElement;
+ getPlaceholderIndex(): Integer;
+ getPlaceholderType(): PlaceholderType;
+ getRotation(): Number;
+ getShapeType(): ShapeType;
+ getText(): TextRange;
+ getTitle(): string;
+ getTop(): Number;
+ getTransform(): AffineTransform;
+ getWidth(): Number;
+ preconcatenateTransform(transform: AffineTransform): Shape;
+ remove(): void;
+ removeLink(): void;
+ replaceWithImage(blobSource: Base.BlobSource): Image;
+ replaceWithImage(blobSource: Base.BlobSource, crop: boolean): Image;
+ replaceWithImage(imageUrl: string): Image;
+ replaceWithImage(imageUrl: string, crop: boolean): Image;
+ replaceWithSheetsChart(sourceChart: Spreadsheet.EmbeddedChart): SheetsChart;
+ replaceWithSheetsChartAsImage(sourceChart: Spreadsheet.EmbeddedChart): Image;
+ scaleHeight(ratio: Number): Shape;
+ scaleWidth(ratio: Number): Shape;
+ select(): void;
+ select(replace: boolean): void;
+ setContentAlignment(contentAlignment: ContentAlignment): Shape;
+ setHeight(height: Number): Shape;
+ setLeft(left: Number): Shape;
+ setLinkSlide(slideIndex: Integer): Link;
+ setLinkSlide(slide: Slide): Link;
+ setLinkSlide(slidePosition: SlidePosition): Link;
+ setLinkUrl(url: string): Link;
+ setRotation(angle: Number): Shape;
+ setTop(top: Number): Shape;
+ setTransform(transform: AffineTransform): Shape;
+ setWidth(width: Number): Shape;
+ }
+
+ /**
+ * The shape types. Many of these shapes correspond to predefined shapes from the ECMA-376 standard.
+ * More information on those shapes can be found in the description of the "ST_ShapeType" simple
+ * type in section 20.1.10.55 of "Office Open XML File Formats - Fundamentals and Markup Language
+ * Reference", part 1 of ECMA-376 4th
+ * edition.
+ */
+ export enum ShapeType { UNSUPPORTED, TEXT_BOX, RECTANGLE, ROUND_RECTANGLE, ELLIPSE, ARC, BENT_ARROW, BENT_UP_ARROW, BEVEL, BLOCK_ARC, BRACE_PAIR, BRACKET_PAIR, CAN, CHEVRON, CHORD, CLOUD, CORNER, CUBE, CURVED_DOWN_ARROW, CURVED_LEFT_ARROW, CURVED_RIGHT_ARROW, CURVED_UP_ARROW, DECAGON, DIAGONAL_STRIPE, DIAMOND, DODECAGON, DONUT, DOUBLE_WAVE, DOWN_ARROW, DOWN_ARROW_CALLOUT, FOLDED_CORNER, FRAME, HALF_FRAME, HEART, HEPTAGON, HEXAGON, HOME_PLATE, HORIZONTAL_SCROLL, IRREGULAR_SEAL_1, IRREGULAR_SEAL_2, LEFT_ARROW, LEFT_ARROW_CALLOUT, LEFT_BRACE, LEFT_BRACKET, LEFT_RIGHT_ARROW, LEFT_RIGHT_ARROW_CALLOUT, LEFT_RIGHT_UP_ARROW, LEFT_UP_ARROW, LIGHTNING_BOLT, MATH_DIVIDE, MATH_EQUAL, MATH_MINUS, MATH_MULTIPLY, MATH_NOT_EQUAL, MATH_PLUS, MOON, NO_SMOKING, NOTCHED_RIGHT_ARROW, OCTAGON, PARALLELOGRAM, PENTAGON, PIE, PLAQUE, PLUS, QUAD_ARROW, QUAD_ARROW_CALLOUT, RIBBON, RIBBON_2, RIGHT_ARROW, RIGHT_ARROW_CALLOUT, RIGHT_BRACE, RIGHT_BRACKET, ROUND_1_RECTANGLE, ROUND_2_DIAGONAL_RECTANGLE, ROUND_2_SAME_RECTANGLE, RIGHT_TRIANGLE, SMILEY_FACE, SNIP_1_RECTANGLE, SNIP_2_DIAGONAL_RECTANGLE, SNIP_2_SAME_RECTANGLE, SNIP_ROUND_RECTANGLE, STAR_10, STAR_12, STAR_16, STAR_24, STAR_32, STAR_4, STAR_5, STAR_6, STAR_7, STAR_8, STRIPED_RIGHT_ARROW, SUN, TRAPEZOID, TRIANGLE, UP_ARROW, UP_ARROW_CALLOUT, UP_DOWN_ARROW, UTURN_ARROW, VERTICAL_SCROLL, WAVE, WEDGE_ELLIPSE_CALLOUT, WEDGE_RECTANGLE_CALLOUT, WEDGE_ROUND_RECTANGLE_CALLOUT, FLOW_CHART_ALTERNATE_PROCESS, FLOW_CHART_COLLATE, FLOW_CHART_CONNECTOR, FLOW_CHART_DECISION, FLOW_CHART_DELAY, FLOW_CHART_DISPLAY, FLOW_CHART_DOCUMENT, FLOW_CHART_EXTRACT, FLOW_CHART_INPUT_OUTPUT, FLOW_CHART_INTERNAL_STORAGE, FLOW_CHART_MAGNETIC_DISK, FLOW_CHART_MAGNETIC_DRUM, FLOW_CHART_MAGNETIC_TAPE, FLOW_CHART_MANUAL_INPUT, FLOW_CHART_MANUAL_OPERATION, FLOW_CHART_MERGE, FLOW_CHART_MULTIDOCUMENT, FLOW_CHART_OFFLINE_STORAGE, FLOW_CHART_OFFPAGE_CONNECTOR, FLOW_CHART_ONLINE_STORAGE, FLOW_CHART_OR, FLOW_CHART_PREDEFINED_PROCESS, FLOW_CHART_PREPARATION, FLOW_CHART_PROCESS, FLOW_CHART_PUNCHED_CARD, FLOW_CHART_PUNCHED_TAPE, FLOW_CHART_SORT, FLOW_CHART_SUMMING_JUNCTION, FLOW_CHART_TERMINATOR, ARROW_EAST, ARROW_NORTH_EAST, ARROW_NORTH, SPEECH, STARBURST, TEARDROP, ELLIPSE_RIBBON, ELLIPSE_RIBBON_2, CLOUD_CALLOUT, CUSTOM }
+
+ /**
+ * A PageElement representing a linked chart embedded from Google Sheets.
+ */
+ export interface SheetsChart {
+ alignOnPage(alignmentPosition: AlignmentPosition): SheetsChart;
+ asImage(): Image;
+ duplicate(): PageElement;
+ getChartId(): Integer;
+ getDescription(): string;
+ getEmbedType(): SheetsChartEmbedType;
+ getHeight(): Number;
+ getInherentHeight(): Number;
+ getInherentWidth(): Number;
+ getLeft(): Number;
+ getLink(): Link;
+ getObjectId(): string;
+ getPageElementType(): PageElementType;
+ getParentGroup(): Group;
+ getParentPage(): Page;
+ getRotation(): Number;
+ getSpreadsheetId(): string;
+ getTitle(): string;
+ getTop(): Number;
+ getTransform(): AffineTransform;
+ getWidth(): Number;
+ preconcatenateTransform(transform: AffineTransform): SheetsChart;
+ refresh(): void;
+ remove(): void;
+ removeLink(): void;
+ scaleHeight(ratio: Number): SheetsChart;
+ scaleWidth(ratio: Number): SheetsChart;
+ select(): void;
+ select(replace: boolean): void;
+ setHeight(height: Number): SheetsChart;
+ setLeft(left: Number): SheetsChart;
+ setLinkSlide(slideIndex: Integer): Link;
+ setLinkSlide(slide: Slide): Link;
+ setLinkSlide(slidePosition: SlidePosition): Link;
+ setLinkUrl(url: string): Link;
+ setRotation(angle: Number): SheetsChart;
+ setTop(top: Number): SheetsChart;
+ setTransform(transform: AffineTransform): SheetsChart;
+ setWidth(width: Number): SheetsChart;
+ }
+
+ /**
+ * The Sheets chart's embed type.
+ */
+ export enum SheetsChartEmbedType { UNSUPPORTED, IMAGE }
+
+ /**
+ * A slide in a presentation.
+ *
+ * These pages contain the content you are presenting to your audience. Most slides are based on
+ * a master and a layout. You can specify which layout to use for each slide when it is created.
+ */
+ export interface Slide {
+ duplicate(): Slide;
+ getBackground(): PageBackground;
+ getColorScheme(): ColorScheme;
+ getGroups(): Group[];
+ getImages(): Image[];
+ getLayout(): Layout;
+ getLines(): Line[];
+ getNotesPage(): NotesPage;
+ getObjectId(): string;
+ getPageElements(): PageElement[];
+ getPageType(): PageType;
+ getPlaceholder(placeholderType: PlaceholderType): PageElement;
+ getPlaceholder(placeholderType: PlaceholderType, placeholderIndex: Integer): PageElement;
+ getPlaceholders(): PageElement[];
+ getShapes(): Shape[];
+ getSheetsCharts(): SheetsChart[];
+ getTables(): Table[];
+ getVideos(): Video[];
+ getWordArts(): WordArt[];
+ group(pageElements: PageElement[]): Group;
+ insertGroup(group: Group): Group;
+ insertImage(blobSource: Base.BlobSource): Image;
+ insertImage(blobSource: Base.BlobSource, left: Number, top: Number, width: Number, height: Number): Image;
+ insertImage(image: Image): Image;
+ insertImage(imageUrl: string): Image;
+ insertImage(imageUrl: string, left: Number, top: Number, width: Number, height: Number): Image;
+ insertLine(line: Line): Line;
+ insertLine(lineCategory: LineCategory, startLeft: Number, startTop: Number, endLeft: Number, endTop: Number): Line;
+ insertPageElement(pageElement: PageElement): PageElement;
+ insertShape(shape: Shape): Shape;
+ insertShape(shapeType: ShapeType): Shape;
+ insertShape(shapeType: ShapeType, left: Number, top: Number, width: Number, height: Number): Shape;
+ insertSheetsChart(sourceChart: Spreadsheet.EmbeddedChart): SheetsChart;
+ insertSheetsChart(sourceChart: Spreadsheet.EmbeddedChart, left: Number, top: Number, width: Number, height: Number): SheetsChart;
+ insertSheetsChart(sheetsChart: SheetsChart): SheetsChart;
+ insertSheetsChartAsImage(sourceChart: Spreadsheet.EmbeddedChart): Image;
+ insertSheetsChartAsImage(sourceChart: Spreadsheet.EmbeddedChart, left: Number, top: Number, width: Number, height: Number): Image;
+ insertTable(numRows: Integer, numColumns: Integer): Table;
+ insertTable(numRows: Integer, numColumns: Integer, left: Number, top: Number, width: Number, height: Number): Table;
+ insertTable(table: Table): Table;
+ insertVideo(videoUrl: string): Video;
+ insertVideo(videoUrl: string, left: Number, top: Number, width: Number, height: Number): Video;
+ insertVideo(video: Video): Video;
+ insertWordArt(wordArt: WordArt): WordArt;
+ move(index: Integer): void;
+ remove(): void;
+ replaceAllText(findText: string, replaceText: string): Integer;
+ replaceAllText(findText: string, replaceText: string, matchCase: boolean): Integer;
+ selectAsCurrentPage(): void;
+ }
+
+ /**
+ * The relative position of a Slide.
+ */
+ export enum SlidePosition { NEXT_SLIDE, PREVIOUS_SLIDE, FIRST_SLIDE, LAST_SLIDE }
+
+ /**
+ * Creates and opens Presentations that can be edited.
+ *
+ * // Open a presentation by ID.
+ * var preso = SlidesApp.openById('PRESENTATION_ID_GOES_HERE');
+ *
+ * // Create and open a presentation.
+ * preso = SlidesApp.create('Presentation Name');
+ */
+ export interface SlidesApp {
+ AlignmentPosition: typeof AlignmentPosition;
+ ArrowStyle: typeof ArrowStyle;
+ AutoTextType: typeof AutoTextType;
+ CellMergeState: typeof CellMergeState;
+ ColorType: typeof ColorType;
+ ContentAlignment: typeof ContentAlignment;
+ DashStyle: typeof DashStyle;
+ FillType: typeof FillType;
+ LineCategory: typeof LineCategory;
+ LineFillType: typeof LineFillType;
+ LineType: typeof LineType;
+ LinkType: typeof LinkType;
+ ListPreset: typeof ListPreset;
+ PageBackgroundType: typeof PageBackgroundType;
+ PageElementType: typeof PageElementType;
+ PageType: typeof PageType;
+ ParagraphAlignment: typeof ParagraphAlignment;
+ PlaceholderType: typeof PlaceholderType;
+ PredefinedLayout: typeof PredefinedLayout;
+ SelectionType: typeof SelectionType;
+ ShapeType: typeof ShapeType;
+ SheetsChartEmbedType: typeof SheetsChartEmbedType;
+ SlidePosition: typeof SlidePosition;
+ SpacingMode: typeof SpacingMode;
+ TextBaselineOffset: typeof TextBaselineOffset;
+ TextDirection: typeof TextDirection;
+ ThemeColorType: typeof ThemeColorType;
+ VideoSourceType: typeof VideoSourceType;
+ create(name: string): Presentation;
+ getActivePresentation(): Presentation;
+ getUi(): Base.Ui;
+ newAffineTransformBuilder(): AffineTransformBuilder;
+ openById(id: string): Presentation;
+ openByUrl(url: string): Presentation;
+ }
+
+ /**
+ * A solid color fill.
+ *
+ * SolidFill objects are detached and immutable, so do not reflect changes made after
+ * they have been created.
+ */
+ export interface SolidFill {
+ getAlpha(): Number;
+ getColor(): Color;
+ }
+
+ /**
+ * The different modes for paragraph spacing.
+ */
+ export enum SpacingMode { UNSUPPORTED, NEVER_COLLAPSE, COLLAPSE_LISTS }
+
+ /**
+ * A PageElement representing a table.
+ */
+ export interface Table {
+ alignOnPage(alignmentPosition: AlignmentPosition): Table;
+ appendColumn(): TableColumn;
+ appendRow(): TableRow;
+ duplicate(): PageElement;
+ getCell(rowIndex: Integer, columnIndex: Integer): TableCell;
+ getColumn(columnIndex: Integer): TableColumn;
+ getDescription(): string;
+ getHeight(): Number;
+ getInherentHeight(): Number;
+ getInherentWidth(): Number;
+ getLeft(): Number;
+ getNumColumns(): Integer;
+ getNumRows(): Integer;
+ getObjectId(): string;
+ getPageElementType(): PageElementType;
+ getParentGroup(): Group;
+ getParentPage(): Page;
+ getRotation(): Number;
+ getRow(rowIndex: Integer): TableRow;
+ getTitle(): string;
+ getTop(): Number;
+ getTransform(): AffineTransform;
+ getWidth(): Number;
+ insertColumn(index: Integer): TableColumn;
+ insertRow(index: Integer): TableRow;
+ preconcatenateTransform(transform: AffineTransform): Table;
+ remove(): void;
+ scaleHeight(ratio: Number): Table;
+ scaleWidth(ratio: Number): Table;
+ select(): void;
+ select(replace: boolean): void;
+ setHeight(height: Number): Table;
+ setLeft(left: Number): Table;
+ setRotation(angle: Number): Table;
+ setTop(top: Number): Table;
+ setTransform(transform: AffineTransform): Table;
+ setWidth(width: Number): Table;
+ }
+
+ /**
+ * A cell in a table.
+ */
+ export interface TableCell {
+ getColumnIndex(): Integer;
+ getColumnSpan(): Integer;
+ getContentAlignment(): ContentAlignment;
+ getFill(): Fill;
+ getHeadCell(): TableCell;
+ getMergeState(): CellMergeState;
+ getParentColumn(): TableColumn;
+ getParentRow(): TableRow;
+ getParentTable(): Table;
+ getRowIndex(): Integer;
+ getRowSpan(): Integer;
+ getText(): TextRange;
+ setContentAlignment(contentAlignment: ContentAlignment): TableCell;
+ }
+
+ /**
+ * A collection of one or more TableCell instances.
+ */
+ export interface TableCellRange {
+ getTableCells(): TableCell[];
+ }
+
+ /**
+ * A column in a table. A column consists of a list of table cells. A column is identified by the
+ * column index.
+ */
+ export interface TableColumn {
+ getCell(cellIndex: Integer): TableCell;
+ getIndex(): Integer;
+ getNumCells(): Integer;
+ getParentTable(): Table;
+ getWidth(): Number;
+ remove(): void;
+ }
+
+ /**
+ * A row in a table. A row consists of a list of table cells. A row is identified by the row index.
+ */
+ export interface TableRow {
+ getCell(cellIndex: Integer): TableCell;
+ getIndex(): Integer;
+ getMinimumHeight(): Number;
+ getNumCells(): Integer;
+ getParentTable(): Table;
+ remove(): void;
+ }
+
+ /**
+ * The text vertical offset from its normal position.
+ */
+ export enum TextBaselineOffset { UNSUPPORTED, NONE, SUPERSCRIPT, SUBSCRIPT }
+
+ /**
+ * The directions text can flow in.
+ */
+ export enum TextDirection { UNSUPPORTED, LEFT_TO_RIGHT, RIGHT_TO_LEFT }
+
+ /**
+ * A segment of the text contents of a Shape or a TableCell.
+ */
+ export interface TextRange {
+ appendParagraph(text: string): Paragraph;
+ appendRange(textRange: TextRange): TextRange;
+ appendRange(textRange: TextRange, matchSourceFormatting: boolean): TextRange;
+ appendText(text: string): TextRange;
+ asRenderedString(): string;
+ asString(): string;
+ clear(): void;
+ clear(startOffset: Integer, endOffset: Integer): void;
+ find(pattern: string): TextRange[];
+ find(pattern: string, startOffset: Integer): TextRange[];
+ getAutoTexts(): AutoText[];
+ getEndIndex(): Integer;
+ getLength(): Integer;
+ getLinks(): TextRange[];
+ getListParagraphs(): Paragraph[];
+ getListStyle(): ListStyle;
+ getParagraphStyle(): ParagraphStyle;
+ getParagraphs(): Paragraph[];
+ getRange(startOffset: Integer, endOffset: Integer): TextRange;
+ getRuns(): TextRange[];
+ getStartIndex(): Integer;
+ getTextStyle(): TextStyle;
+ insertParagraph(startOffset: Integer, text: string): Paragraph;
+ insertRange(startOffset: Integer, textRange: TextRange): TextRange;
+ insertRange(startOffset: Integer, textRange: TextRange, matchSourceFormatting: boolean): TextRange;
+ insertText(startOffset: Integer, text: string): TextRange;
+ isEmpty(): boolean;
+ replaceAllText(findText: string, replaceText: string): Integer;
+ replaceAllText(findText: string, replaceText: string, matchCase: boolean): Integer;
+ select(): void;
+ setText(newText: string): TextRange;
+ }
+
+ /**
+ * The style of text.
+ *
+ * Read methods in this class return null if the corresponding TextRange spans
+ * multiple text runs, and those runs have different values for the read method being called. To
+ * avoid this, query for text styles using the TextRanges returned by the TextRange.getRuns() method.
+ */
+ export interface TextStyle {
+ getBackgroundColor(): Color;
+ getBaselineOffset(): TextBaselineOffset;
+ getFontFamily(): string;
+ getFontSize(): Number;
+ getFontWeight(): Integer;
+ getForegroundColor(): Color;
+ getLink(): Link;
+ hasLink(): boolean;
+ isBackgroundTransparent(): boolean;
+ isBold(): boolean;
+ isItalic(): boolean;
+ isSmallCaps(): boolean;
+ isStrikethrough(): boolean;
+ isUnderline(): boolean;
+ removeLink(): TextStyle;
+ setBackgroundColor(color: Color): TextStyle;
+ setBackgroundColor(red: Integer, green: Integer, blue: Integer): TextStyle;
+ setBackgroundColor(hexColor: string): TextStyle;
+ setBackgroundColor(color: ThemeColorType): TextStyle;
+ setBackgroundColorTransparent(): TextStyle;
+ setBaselineOffset(offset: TextBaselineOffset): TextStyle;
+ setBold(bold: boolean): TextStyle;
+ setFontFamily(fontFamily: string): TextStyle;
+ setFontFamilyAndWeight(fontFamily: string, fontWeight: Integer): TextStyle;
+ setFontSize(fontSize: Number): TextStyle;
+ setForegroundColor(foregroundColor: Color): TextStyle;
+ setForegroundColor(red: Integer, green: Integer, blue: Integer): TextStyle;
+ setForegroundColor(hexColor: string): TextStyle;
+ setForegroundColor(color: ThemeColorType): TextStyle;
+ setItalic(italic: boolean): TextStyle;
+ setLinkSlide(slideIndex: Integer): TextStyle;
+ setLinkSlide(slide: Slide): TextStyle;
+ setLinkSlide(slidePosition: SlidePosition): TextStyle;
+ setLinkUrl(url: string): TextStyle;
+ setSmallCaps(smallCaps: boolean): TextStyle;
+ setStrikethrough(strikethrough: boolean): TextStyle;
+ setUnderline(underline: boolean): TextStyle;
+ }
+
+ /**
+ * A color that refers to an entry in the page's ColorScheme.
+ */
+ export interface ThemeColor {
+ getColorType(): ColorType;
+ getThemeColorType(): ThemeColorType;
+ }
+
+ /**
+ * The name of an entry in the page's color scheme.
+ */
+ export enum ThemeColorType { UNSUPPORTED, DARK1, LIGHT1, DARK2, LIGHT2, ACCENT1, ACCENT2, ACCENT3, ACCENT4, ACCENT5, ACCENT6, HYPERLINK, FOLLOWED_HYPERLINK }
+
+ /**
+ * A PageElement representing a video.
+ */
+ export interface Video {
+ alignOnPage(alignmentPosition: AlignmentPosition): Video;
+ duplicate(): PageElement;
+ getBorder(): Border;
+ getDescription(): string;
+ getHeight(): Number;
+ getInherentHeight(): Number;
+ getInherentWidth(): Number;
+ getLeft(): Number;
+ getObjectId(): string;
+ getPageElementType(): PageElementType;
+ getParentGroup(): Group;
+ getParentPage(): Page;
+ getRotation(): Number;
+ getSource(): VideoSourceType;
+ getThumbnailUrl(): string;
+ getTitle(): string;
+ getTop(): Number;
+ getTransform(): AffineTransform;
+ getUrl(): string;
+ getVideoId(): string;
+ getWidth(): Number;
+ preconcatenateTransform(transform: AffineTransform): Video;
+ remove(): void;
+ scaleHeight(ratio: Number): Video;
+ scaleWidth(ratio: Number): Video;
+ select(): void;
+ select(replace: boolean): void;
+ setHeight(height: Number): Video;
+ setLeft(left: Number): Video;
+ setRotation(angle: Number): Video;
+ setTop(top: Number): Video;
+ setTransform(transform: AffineTransform): Video;
+ setWidth(width: Number): Video;
+ }
+
+ /**
+ * The video source types.
+ */
+ export enum VideoSourceType { UNSUPPORTED, YOUTUBE }
+
+ /**
+ * A PageElement representing word art.
+ */
+ export interface WordArt {
+ alignOnPage(alignmentPosition: AlignmentPosition): WordArt;
+ duplicate(): PageElement;
+ getDescription(): string;
+ getHeight(): Number;
+ getInherentHeight(): Number;
+ getInherentWidth(): Number;
+ getLeft(): Number;
+ getLink(): Link;
+ getObjectId(): string;
+ getPageElementType(): PageElementType;
+ getParentGroup(): Group;
+ getParentPage(): Page;
+ getRenderedText(): string;
+ getRotation(): Number;
+ getTitle(): string;
+ getTop(): Number;
+ getTransform(): AffineTransform;
+ getWidth(): Number;
+ preconcatenateTransform(transform: AffineTransform): WordArt;
+ remove(): void;
+ removeLink(): void;
+ scaleHeight(ratio: Number): WordArt;
+ scaleWidth(ratio: Number): WordArt;
+ select(): void;
+ select(replace: boolean): void;
+ setHeight(height: Number): WordArt;
+ setLeft(left: Number): WordArt;
+ setLinkSlide(slideIndex: Integer): Link;
+ setLinkSlide(slide: Slide): Link;
+ setLinkSlide(slidePosition: SlidePosition): Link;
+ setLinkUrl(url: string): Link;
+ setRotation(angle: Number): WordArt;
+ setTop(top: Number): WordArt;
+ setTransform(transform: AffineTransform): WordArt;
+ setWidth(width: Number): WordArt;
+ }
+
+ }
+}
+
+declare var SlidesApp: GoogleAppsScript.Slides.SlidesApp;
diff --git a/types/google-apps-script/index.d.ts b/types/google-apps-script/index.d.ts
index 0e4ca164a9..df2cca1363 100644
--- a/types/google-apps-script/index.d.ts
+++ b/types/google-apps-script/index.d.ts
@@ -26,6 +26,7 @@
///
///
///
+///
///
///
///