import type { PromptQuestion } from 'node-plop';
import type { IHooks } from '../hooks';
/**
 * See https://rushjs.io/pages/configs/rush_json/
 */
export interface IDefaultProjectConfiguration {
    reviewCategory?: string;
    /**
     * @deprecated Use `decoupledLocalDependencies` instead.
     */
    cyclicDependencyProjects?: string[];
    decoupledLocalDependencies?: string[];
    shouldPublish?: boolean;
    skipRushCheck?: boolean;
    versionPolicyName?: string;
    publishFolder?: string;
    tags?: string[];
}
export interface IConfig {
    prompts?: PromptQuestion[];
    plugins?: IPlugin[];
    defaultProjectConfiguration?: IDefaultProjectConfiguration;
    displayName?: string;
}
export interface IPlugin {
    apply: (hook: IHooks, pluginContext: IPluginContext) => void;
}
export interface IPluginContext extends Record<string, any> {
    isDryRun: boolean;
    cliAnswer: Record<string, string>;
}
export declare class TemplateConfiguration {
    private _prompts;
    private _plugins;
    private _defaultProjectConfiguration;
    displayName: string;
    private constructor();
    static loadFromTemplate(template: string): Promise<TemplateConfiguration>;
    get prompts(): PromptQuestion[];
    get plugins(): IPlugin[];
    get defaultProjectConfiguration(): IDefaultProjectConfiguration;
}
//# sourceMappingURL=TemplateConfiguration.d.ts.map