import { NinePatch } from "./NinePatch";
export declare class NinePatchPlugin extends Phaser.Plugin {
    constructor(game: Phaser.Game, parent: Phaser.PluginManager);
    private addNinePatchLoader;
    /**
     * Extends the GameObjectFactory prototype with the support of adding NinePatch. this allows us to add NinePatch methods to the game just like any other object:
     * game.add.NinePatch();
     */
    private addNinePatchFactory;
    /**
     * Extends the Phaser.Cache prototype with NinePatch properties
     */
    private addNinePatchCache;
}
export interface INinePatchObjectFactory extends Phaser.GameObjectFactory {
    ninePatch: (x: number, y: number, key: string, frame: string, width: number, height: number, group?: Phaser.Group) => NinePatch;
}
export interface INinePatchObjectCreator extends Phaser.GameObjectCreator {
    ninePatch: (x: number, y: number, key: string, frame: string, width: number, height: number, group?: Phaser.Group) => NinePatch;
}
export interface INinePatchCache extends Phaser.Cache {
    addNinePatch: (key: string, data: INinePatchCacheData) => void;
    getNinePatch: (key: string) => INinePatchCacheData;
    ninePatch: {
        [key: string]: INinePatchCacheData;
    };
}
export interface INinePatchLoader extends Phaser.Loader {
    ninePatch: (key: string, url: string, top: number, left?: number, right?: number, bottom?: number) => void;
    cache: INinePatchCache;
}
export interface INinePatchGame extends Phaser.Game {
    add: INinePatchObjectFactory;
    load: INinePatchLoader;
    cache: INinePatchCache;
}
export interface INinePatchCacheData {
    top: number;
    bottom?: number;
    left?: number;
    right?: number;
}
