import { AtlasInputNotResolved, ICache, IGeneratorOutput, IImageProcessor, Logger } from './index';
export interface IGenerateOptions {
    concurrencyLimit: number;
    cleanCache: boolean;
    cleanOutput: boolean;
    inputPath: string;
    outputPath: string;
    outputDestination: (atlasIndex: number, pageIndex: number, res: IGeneratorOutput) => string;
    atlasPageMetaPathResolver?: (atlasIndex: number, pageIndex: number, res: IGeneratorOutput) => string;
    pageManifestBuilder?: (atlasIndex: number, pageIndex: number, res: IGeneratorOutput) => any;
}
export interface IEnvironment extends ICache {
    load(): Promise<void>;
    clean(): Promise<void>;
    cleanPath(dir: string): Promise<void>;
    save(): Promise<void>;
    copyTo(targetFilePath: string, toPath: string): Promise<void>;
    joinPaths(...paths: string[]): string;
    ensureDir(dir: string): Promise<void>;
    glob(pattern: string): Promise<string[]>;
    writeFile(outputFilePath: string, raw: string): Promise<void>;
}
export declare function packer(atlases: AtlasInputNotResolved[], generateOptions: IGenerateOptions, imageProcessor: IImageProcessor, environment: IEnvironment, manifestsSaver?: (generateOptions: IGenerateOptions, environment: IEnvironment, result: IGeneratorOutput) => Promise<void>, log?: Logger): Promise<IGeneratorOutput>;
