export type BuildCancellationResult = {
    ok: true;
} | {
    ok: false;
    message: string;
};
export declare const DUPLICATE_SIGINT_WINDOW_MS = 500;
export interface BuildCancellationRequestOptions {
    url: string;
    headers: Record<string, string>;
    appId: string;
    fetchImpl?: typeof fetch;
    timeoutMs?: number;
}
export declare function requestBuildCancellation(options: BuildCancellationRequestOptions): Promise<BuildCancellationResult>;
export interface BuildCancellationSignalHandlerOptions {
    requestCancellation: () => Promise<BuildCancellationResult>;
    onCancellationStarted: () => void;
    onCancellationResult: (result: BuildCancellationResult) => void;
    abortLogStream: () => void;
    forceExit: (code: number) => void;
    now?: () => number;
    duplicateSignalWindowMs?: number;
}
export declare function createBuildCancellationSignalHandler(options: BuildCancellationSignalHandlerOptions): () => Promise<void>;
