export default GenerateFrames; declare namespace GenerateFrames { /** * Edge mode values for a piece. */ type EdgeModeType = { left: number, right: number, top: number, bottom: number, }; /** * 2D array of edge modes. */ type EdgesType = (EdgeModeType | string)[][]; /** * Callbacks for edge generation. */ type GetEdgeCallbacksType = { getRightEdge?: (c: number, r: number) => number, getBottomEdge?: (c: number, r: number) => number, } /** * Callback to draw a piece shape. * * @param graphics - Graphics object. * @param width - Frame width. * @param height - Frame height. * @param edgeWidth - Edge width. * @param edgeHeight - Edge height. * @param edgeMode - Edge mode values. */ type DrawShapeCallbackType = ( graphics: Phaser.GameObjects.Graphics, width: number, height: number, edgeWidth: number, edgeHeight: number, edgeMode: EdgeModeType ) => void; /** * Configuration options for GenerateFrames. */ interface IConfig { /** * Source texture key. */ sourceKey: string, /** * Destination texture key. */ destinationKey: string, /** * Number of columns. */ columns: number, /** * Number of rows. */ rows: number, /** * Frame padding. */ framePadding?: number, /** * Edge width. */ edgeWidth?: number, /** * Edge height. */ edgeHeight?: number, /** * Edge definitions or callbacks. */ edges?: EdgesType | GetEdgeCallbacksType, /** * Shape draw callback. */ drawShapeCallback?: DrawShapeCallbackType, /** * Use dynamic texture. */ useDynamicTexture?: boolean, } /** * Generated frame data result. */ interface IResult { /** * Source texture key. */ sourceKey: string, /** * Destination texture key. */ destinationKey: string, /** * Number of columns. */ columns: number, /** * Number of rows. */ rows: number, /** * Frame width. */ frameWidth: number, /** * Frame height. */ frameHeight: number, /** * Edge width. */ edgeWidth: number, /** * Edge height. */ edgeHeight: number, /** * Frame name callback. */ getFrameNameCallback: DrawShapeCallbackType, } } /** * Generate jigsaw frames for a texture. * * @param scene - Scene instance. * @param config - Configuration options. * @returns Generated frame data. */ declare function GenerateFrames( scene: Phaser.Scene, config: GenerateFrames.IConfig ): GenerateFrames.IResult;