import type { ControlPlaneOperation, ControlPlaneStore } from '../control-plane';
import type { QueueExecutionContext, QueueOperationHandler } from './types';
export declare const DEPLOYMENT_QUEUE_KINDS: readonly ['deployment.create', 'deployment.rollback', 'application.create', 'deploy.source', 'deploy.preview', 'preview.create', 'preview.update', 'preview.destroy', 'compose.deploy', 'compose.redeploy', 'compose.start', 'compose.stop', 'compose.delete', 'compose.scale'];
export interface QueuedDeploymentCommand {
    id: string;
    label: string;
    description: string;
    command: string[];
    mutates: true;
    target: {
        environment: string;
        resource?: string;
        previewId?: string;
        composeId?: string;
    };
}
export interface QueuedDeploymentResult {
    ok: boolean;
    exitCode: number;
    command?: string;
    stderr?: string;
}
export declare function resolveQueuedDeploymentCommand(store: ControlPlaneStore, operation: ControlPlaneOperation): QueuedDeploymentCommand;
export declare function createDeploymentQueueHandlers(input: {
    store: ControlPlaneStore;
    execute: (command: QueuedDeploymentCommand, context: QueueExecutionContext) => Promise<QueuedDeploymentResult>;
}): Record<string, QueueOperationHandler>;
