import { Color, Layer, Psd } from 'ag-psd';
export interface ILayerWithCanvas extends Layer {
    pngFile: string;
}
declare type PrefabNodeType = 'GameObject' | 'Image' | 'Text';
interface IBaseNode {
    name?: string;
    width: number;
    height: number;
    x: number;
    y: number;
    children: IPrefabNode[];
}
export interface IPrefabInstruction extends IBaseNode {
    name: string;
}
export interface IPrefabNode extends IBaseNode {
    type: PrefabNodeType;
}
export interface IPrefabGameObject extends IPrefabNode {
    type: 'GameObject';
}
export interface IPrefabImage extends IPrefabNode {
    type: 'Image';
    image: string;
}
interface ITextStyle {
    font?: string;
    fontSize?: number;
    color?: Color;
    strokeColor?: Color;
}
interface IStyleRun {
    length: number;
    style: ITextStyle;
}
interface IPrefabTextDetail {
    text: string;
    style?: ITextStyle;
    styleRuns?: IStyleRun[];
}
export interface IPrefabText extends IPrefabNode {
    type: 'Text';
    text: IPrefabTextDetail;
}
export declare class PrefabGenerator {
    make(psd: Psd): Promise<void>;
    private simplify;
    private collectNodes;
    private treeShake;
    private toPositionRelativeToParentLeftTop;
    private toPositionRelativeToParentCenter;
    private toITextStyle;
    isArtFont(layer: Layer): boolean;
}
export {};
