import * as private_cxapi from '@aws-cdk/cloud-assembly-api';
import type { IConstruct } from 'constructs';
import type { ISynthesisSession } from '../stack-synthesizers/types';
import type { StageSynthesisOptions } from '../stage';
/**
 * Options for `synthesize()`
 */
export interface SynthesisOptions extends StageSynthesisOptions {
    /**
     * The output directory into which to synthesize the cloud assembly.
     * @default - creates a temporary directory
     */
    readonly outdir?: string;
}
export declare function synthesize(root: IConstruct, options?: SynthesisOptions): private_cxapi.CloudAssembly;
/**
 * Interface for constructs that want to do something custom during synthesis
 */
export interface ICustomSynthesis {
    /**
     * Called when the construct is synthesized
     */
    onSynthesize(session: ISynthesisSession): void;
}
export declare function addCustomSynthesis(construct: IConstruct, synthesis: ICustomSynthesis): void;
