// Type definitions for pptxgenjs 2.3.0 // Project: https://gitbrent.github.io/PptxGenJS/ // Definitions by: Brent Ely // Michael Beaumont // Nicholas Tietz-Sokolsky // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.3 export as namespace PptxGenJS; export = PptxGenJS; declare class PptxGenJS { // Presentation Props getLayout(): string; setBrowser(isBrowser: boolean): void; setLayout(layout: PptxGenJS.LayoutName | PptxGenJS.Layout): void; setRTL(isRTL: boolean): void; // Presentation Metadata setAuthor(author: string): void; setCompany(company: string): void; setRevision(revision: string): void; setSubject(subject: string): void; setTitle(title: string): void; // Add a new Slide addNewSlide(masterLayoutName?: string): PptxGenJS.Slide; defineSlideMaster(opts: PptxGenJS.MasterSlideOptions): void; // Export save(exportFileName: string, callbackFunction?: Function, zipOutputType?: PptxGenJS.JsZipOutputType): void; } declare namespace PptxGenJS { const version: string; export type ChartType = "AREA" | "BAR" | "BUBBLE" | "DOUGHNUT" | "LINE" | "PIE" | "RADAR" | "SCATTER"; export type JsZipOutputType = "arraybuffer" | "base64" | "binarystring" | "blob" | "nodebuffer" | "uint8array"; export type LayoutName = "LAYOUT_4x3" | "LAYOUT_16x9" | "LAYOUT_16x10" | "LAYOUT_WIDE"; export interface Layout { name: string; width: number; height: number; } export type Color = string; export type Coord = number | string; // string is in form 'n%' export interface CommonOptions { x?: Coord; y?: Coord; w?: Coord; h?: Coord; } export interface DataOrPath { // Exactly one must be set data?: string; path?: string; } export interface ImageOptions extends CommonOptions, DataOrPath { hyperlink?: string; rounding?: boolean; sizing?: "cover" | "contain" | "crop"; } export interface MediaOptions extends CommonOptions, DataOrPath { onlineVideoLink?: string; type?: "audio" | "online" | "video"; } export interface TextOptions extends CommonOptions, DataOrPath { align?: "left" | "center" | "right"; fontSize?: number; color?: string; valign?: "top" | "middle" | "bottom"; } export interface MasterSlideOptions { title: string; bkgd?: string | DataOrPath; objects?: object[]; slideNumber?: {x?: Coord, y?: Coord, color?: Color}; margin?: number | number[]; } export class Slide { // Slide Number methods getPageNumber(): string; slideNumber(): object; slideNumber(options: object): void; // Core object API Methods addChart(type: ChartType, data: string, options?: object): Slide; addImage(options: ImageOptions): Slide; addMedia(options: MediaOptions): Slide; addNotes(noteText: string): Slide; addShape(shapeName: string, options: object): Slide; addTable(tableData: Array, options: object): Slide; addText(textString: string, options: TextOptions): Slide; } }