/// <reference types="node" />
import { AppDefinition } from '../input/types.js';
import { AuthCommand } from '../AuthCommand.js';
export default class Generate extends AuthCommand {
    static enableJsonFlag: boolean;
    static summary: string;
    static description: string;
    static aliases: string[];
    static examples: string[];
    static flags: {
        name: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
        description: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
        deploy: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
        awsProfileToCopy: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
        replaceAppDefinition: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
        generateAppDefinitionOnly: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
        idp: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
    };
    run(): Promise<{
        description?: string;
        deploy: boolean;
        awsProfileToCopy: string;
    }>;
    getAppDefinition(): Promise<AppDefinition>;
    getAppName(): Promise<string>;
    /**
     * Checks if a .codegenie directory already exists so that it doesn't accidentally get overwritten.
     *
     * Users can specify --replaceAppDefinition if they would prefer to ignore this and replace the directory.
     * @throws When a .codegenie directory exists and --replaceAppDefinition wasn't specified
     */
    handleExistingAppDefinition(): Promise<boolean>;
    /**
     * Generates a [.codegenie app definition](https://codegenie.codes/docs) based on the provided description
     * @param root0
     * @param root0.appName
     */
    generateAppDefinition({ appName }: {
        appName: string;
    }): Promise<{
        appName: string;
        appDescription: string;
    }>;
    getLogo(): Promise<string | null>;
    writeGeneratedAppDefinitionFile({ appDefinition }: {
        appDefinition: AppDefinition;
    }): Promise<void>;
    addAppIdToAppDefinitionFile({ appId }: {
        appId: string;
    }): Promise<void>;
    createZip(directoryPath: string): Promise<Buffer>;
    /**
     * Uploads App Definition .codegenie directory to S3, which kicks off an app build
     */
    generateApp(): Promise<{
        outputPresignedUrl: any;
    }>;
    pollS3ObjectExistence({ headObjectPresignedUrl, interval, timeout, startTime, attempt, }: {
        headObjectPresignedUrl: string;
        interval: number;
        timeout: number;
        startTime?: number;
        attempt?: number;
    }): Promise<void>;
    downloadProject({ outputPresignedUrl }: {
        outputPresignedUrl: string;
    }): Promise<undefined>;
    runInitDev(): Promise<undefined>;
    copyCodeGenieLogo(): Promise<void>;
}
//# sourceMappingURL=generate.d.ts.map