export type DeepMindUploadBoundary = "input" | "contract" | "governance" | "provider-config";
export type DeepMindUploadGate = {
    accepted: boolean;
    reason?: string;
};
export type DeepMindUploadTrace = {
    correlationId?: string;
    callerId?: string;
    source?: string;
};
export type DeepMindUploadProtocol = "resumable" | "multipart" | "raw";
export type DeepMindUploadFileDescriptor = {
    displayName?: string;
    mimeType?: string;
    sizeBytes?: number;
    uri?: string;
};
export type DeepMindUploadV1BetaFilesRequest = {
    file?: DeepMindUploadFileDescriptor;
    uploadProtocol?: DeepMindUploadProtocol;
    apiKeyPresent?: boolean;
    responseBody?: Readonly<Record<string, unknown>>;
    upstreamError?: unknown;
    contract?: DeepMindUploadGate;
    governance?: DeepMindUploadGate;
    trace?: DeepMindUploadTrace;
    metadata?: Readonly<Record<string, unknown>>;
};
export type DeepMindUploadFileEnvelope = {
    displayName: string;
    mimeType: string;
    sizeBytes?: number;
    uri?: string;
};
export type DeepMindUploadErrorCategory = "auth" | "rate-limit" | "timeout" | "endpoint-unavailable" | "format-drift" | "provider-error" | "unknown";
export type DeepMindUploadProviderError = {
    category: DeepMindUploadErrorCategory;
    message: string;
    status?: number;
    keyHints: readonly string[];
    rawProviderFieldsExposed: false;
};
export type DeepMindUploadV1BetaFilesPlan = {
    provider: "deepmind";
    endpointId: "upload.v1beta.files";
    endpointPath: "/upload/v1beta/files";
    method: "POST";
    uploadProtocol: DeepMindUploadProtocol;
    file: DeepMindUploadFileEnvelope;
    auth: {
        required: true;
        present: boolean;
    };
    responseEnvelope?: {
        retained: false;
        keyHints: readonly string[];
    };
    errorEnvelope?: DeepMindUploadProviderError;
    capabilitySignal: {
        capabilityId: "deepmind.upload.v1beta.files";
        supportsFileUpload: true;
        authRequired: true;
        usableByAbstractionLayer: boolean;
    };
    metadata: Readonly<Record<string, unknown>>;
    trace: DeepMindUploadTrace;
    providerCarrierHandoff: {
        target: "providerCarrierRegistry";
        mockable: true;
        networkCallStarted: false;
    };
    abstractionHandoff: {
        target: "agent_modelAdapter.abstractionLayer";
        rawProviderFieldsExposed: false;
    };
    audit: {
        plannedBy: "deepmind.upload_v1beta_files";
        dryRun: true;
        unsafeSideEffects: false;
    };
};
export type DeepMindUploadV1BetaFilesErrorCode = "MISSING_FILE" | "MISSING_DISPLAY_NAME" | "MISSING_MIME_TYPE" | "INVALID_FILE_SIZE" | "RESPONSE_FORMAT_DRIFT" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED";
export type DeepMindUploadV1BetaFilesError = {
    code: DeepMindUploadV1BetaFilesErrorCode;
    message: string;
    boundary: DeepMindUploadBoundary | "provider-response";
    safeForRuntimeInspection: true;
    rawProviderFieldsExposed: false;
};
export type DeepMindUploadV1BetaFilesResult = {
    ok: true;
    plan: DeepMindUploadV1BetaFilesPlan;
    events: readonly string[];
} | {
    ok: false;
    error: DeepMindUploadV1BetaFilesError;
    events: readonly string[];
};
export declare const deepMindUploadV1BetaFilesDescriptor: {
    readonly layer: "agent_modelAdapter.actualInvocationLayer.deepmind";
    readonly capability: "deepmind.upload.v1beta.files";
    readonly endpointPath: "/upload/v1beta/files";
    readonly dryRun: true;
    readonly unsafeSideEffects: false;
    readonly providerFieldsPromotedToPraxisContract: false;
};
export declare function cleanDeepMindUploadText(value: string | undefined): string | undefined;
export declare function isDeepMindUploadRecord(value: unknown): value is Readonly<Record<string, unknown>>;
export declare function classifyDeepMindUploadError(error: unknown): DeepMindUploadProviderError;
export declare function planDeepMindUploadV1BetaFiles(request?: DeepMindUploadV1BetaFilesRequest): DeepMindUploadV1BetaFilesResult;
