type IntegrationErrorCode = 'missing_connection' | 'missing_grant' | 'approval_required' | 'approval_denied' | 'connection_revoked' | 'connection_expired' | 'scope_missing' | 'action_denied' | 'action_not_found' | 'trigger_not_found' | 'provider_rate_limited' | 'provider_auth_failed' | 'provider_unavailable' | 'provider_error' | 'capability_expired' | 'capability_invalid' | 'manifest_invalid' | 'passthrough_disabled' | 'input_invalid' | 'unknown';
interface IntegrationUserAction {
    type: 'connect' | 'reconnect' | 'approve' | 'retry' | 'contact_support' | 'change_request';
    label: string;
    connectorId?: string;
    approvalId?: string;
}
declare class IntegrationRuntimeError extends Error {
    readonly code: IntegrationErrorCode;
    readonly status: number;
    readonly userAction?: IntegrationUserAction;
    readonly metadata?: Record<string, unknown>;
    constructor(input: {
        code: IntegrationErrorCode;
        message: string;
        status?: number;
        userAction?: IntegrationUserAction;
        metadata?: Record<string, unknown>;
    });
}
interface NormalizedIntegrationError {
    ok: false;
    code: IntegrationErrorCode;
    message: string;
    status: number;
    userAction?: IntegrationUserAction;
    metadata?: Record<string, unknown>;
}
declare function normalizeIntegrationError(error: unknown): NormalizedIntegrationError;
declare function statusForCode(code: IntegrationErrorCode): number;

export { IntegrationRuntimeError as I, type NormalizedIntegrationError as N, type IntegrationUserAction as a, type IntegrationErrorCode as b, normalizeIntegrationError as n, statusForCode as s };
