import { CdktfProjectOptions, MutationOptions } from "./cdktf-project";
import { CdktfStack } from "./cdktf-stack";
export declare type State = {
    type: "waiting";
} | {
    type: "running";
    nextRunQueued: boolean;
    currentRun: Promise<void>;
    inProgress: CdktfStack[];
    finished: CdktfStack[];
    pending: CdktfStack[];
} | {
    type: "stopped";
};
export declare function watch(projectOptions: CdktfProjectOptions, mutationOptions: MutationOptions, abortSignal: AbortSignal, onStateChange: (newState: State) => void): Promise<void>;
