import type { FabroNativeClient, FabroNativeRun } from "./native.js";
interface FabroHttpClientOptions {
    readonly baseUrl: string;
    readonly bearerToken?: string;
    readonly fetch?: typeof globalThis.fetch;
    readonly workflowSource?: string;
}
export declare class FabroHttpClient implements FabroNativeClient {
    private readonly baseUrl;
    private readonly bearerToken;
    private readonly fetchImpl;
    private readonly workflowSource;
    constructor(options: FabroHttpClientOptions);
    findRunByIdempotencyKey(idempotencyKey: string): Promise<FabroNativeRun | undefined>;
    findRunByFactoryRunId(factoryRunId: string): Promise<FabroNativeRun | undefined>;
    startRun(input: {
        readonly factoryRunId: string;
        readonly planRevisionId: string;
        readonly idempotencyKey: string;
    }): Promise<FabroNativeRun>;
    cancelRun(nativeRunId: string): Promise<FabroNativeRun>;
    getRun(nativeRunId: string): Promise<FabroNativeRun | undefined>;
    private findRunByLabel;
    private toNative;
    private request;
    private rawRequest;
    private decode;
}
export {};
//# sourceMappingURL=http-client.d.ts.map