import cxapi = require('@aws-cdk/cx-api');
import { Stack } from './cloudformation/stack';
import { MetadataEntry, Root } from './core/construct';
/**
 * Represents a CDK program.
 */
export declare class App extends Root {
    private readonly progname?;
    private readonly request?;
    constructor(argv?: string[]);
    private readonly stacks;
    /**
     * Runs the program
     * @returns STDOUT
     */
    run(): string;
    /**
     * @deprecated Use app.run().
     */
    exec(): Promise<string>;
    /**
     * Lists all stacks in this app.
     */
    listStacks(): cxapi.StackInfo[];
    /**
     * Synthesize and validate a single stack
     * @param stackName The name of the stack to synthesize
     */
    synthesizeStack(stackName: string): cxapi.SynthesizedStack;
    /**
     * Synthesizes multiple stacks
     */
    synthesizeStacks(stackNames: string[]): cxapi.SynthesizedStack[];
    /**
     * Returns metadata for all constructs in the stack.
     */
    collectMetadata(stack: Stack): {
        [id: string]: MetadataEntry[];
    };
    private collectRuntimeInformation;
    private getStack;
    private runCommand;
    private readonly usage;
    private loadContext;
    private parseRequest;
}
export declare class Program extends App {
    constructor(argv?: string[]);
}
