import { CreateAppClientInput, RegisterAppCommand, RegisterAppResult } from './register-app';
import { Templater } from './template';
import { PackageInstaller } from './package-installer';
import { StatsigService } from '../service';
export interface CreateAppCommandInput extends CreateAppClientInput {
    template: string;
    directory: string;
    requiredProduct?: string;
}
export declare class NoTemplatesError extends Error {
    constructor();
}
export declare type CreateAppCommandResult = RegisterAppResult & {
    analytics: {
        template: string;
    };
};
export declare class CreateAppCommand {
    private readonly templater;
    private readonly registerAppCommand;
    private readonly packageInstaller;
    private readonly statsig;
    constructor(templater: Templater, registerAppCommand: RegisterAppCommand, packageInstaller: PackageInstaller, statsig: StatsigService);
    execute({ name, description, template, directory, requiredProduct, developerSpaceId, billingConsent }: CreateAppCommandInput): Promise<CreateAppCommandResult>;
    getAvailableTemplates(): Promise<string[]>;
    filterAvailableProducts<T extends string>(products: T[], teamworkGraph: T, crossContext: T): Promise<T[]>;
}
//# sourceMappingURL=create-an-app.d.ts.map