import * as z from "zod";
import { Result as SafeParseResult } from "../../types/fp.js";
import * as shared from "../shared/index.js";
import { SDKValidationError } from "./sdkvalidationerror.js";
/**
 * Response headers
 */
export type Headers = {};
/**
 * Error details
 */
export type Data = {
    /**
     * Response headers
     */
    headers?: Headers | null | undefined;
    /**
     * Error message
     */
    message?: string | null | undefined;
    /**
     * HTTP status code
     */
    statusCode?: number | null | undefined;
};
export type BadRequestResponseData = {
    /**
     * Error details
     */
    data?: Data | null | undefined;
    /**
     * Error message
     */
    message: string;
    /**
     * List of provider-specific errors
     */
    providerErrors?: Array<shared.ProviderError> | null | undefined;
    /**
     * HTTP status code
     */
    statusCode: number;
    /**
     * Timestamp when the error occurred
     */
    timestamp: Date;
};
export declare class BadRequestResponse extends Error {
    /**
     * Error details
     */
    data?: Data | null | undefined;
    /**
     * List of provider-specific errors
     */
    providerErrors?: Array<shared.ProviderError> | null | undefined;
    /**
     * HTTP status code
     */
    statusCode: number;
    /**
     * Timestamp when the error occurred
     */
    timestamp: Date;
    /** The original data that was passed to this error instance. */
    data$: BadRequestResponseData;
    constructor(err: BadRequestResponseData);
}
/** @internal */
export declare const Headers$inboundSchema: z.ZodType<Headers, z.ZodTypeDef, unknown>;
/** @internal */
export type Headers$Outbound = {};
/** @internal */
export declare const Headers$outboundSchema: z.ZodType<Headers$Outbound, z.ZodTypeDef, Headers>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Headers$ {
    /** @deprecated use `Headers$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Headers, z.ZodTypeDef, unknown>;
    /** @deprecated use `Headers$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Headers$Outbound, z.ZodTypeDef, Headers>;
    /** @deprecated use `Headers$Outbound` instead. */
    type Outbound = Headers$Outbound;
}
export declare function headersToJSON(headers: Headers): string;
export declare function headersFromJSON(jsonString: string): SafeParseResult<Headers, SDKValidationError>;
/** @internal */
export declare const Data$inboundSchema: z.ZodType<Data, z.ZodTypeDef, unknown>;
/** @internal */
export type Data$Outbound = {
    headers?: Headers$Outbound | null | undefined;
    message?: string | null | undefined;
    statusCode?: number | null | undefined;
};
/** @internal */
export declare const Data$outboundSchema: z.ZodType<Data$Outbound, z.ZodTypeDef, Data>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Data$ {
    /** @deprecated use `Data$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Data, z.ZodTypeDef, unknown>;
    /** @deprecated use `Data$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Data$Outbound, z.ZodTypeDef, Data>;
    /** @deprecated use `Data$Outbound` instead. */
    type Outbound = Data$Outbound;
}
export declare function dataToJSON(data: Data): string;
export declare function dataFromJSON(jsonString: string): SafeParseResult<Data, SDKValidationError>;
/** @internal */
export declare const BadRequestResponse$inboundSchema: z.ZodType<BadRequestResponse, z.ZodTypeDef, unknown>;
/** @internal */
export type BadRequestResponse$Outbound = {
    data?: Data$Outbound | null | undefined;
    message: string;
    provider_errors?: Array<shared.ProviderError$Outbound> | null | undefined;
    statusCode: number;
    timestamp: string;
};
/** @internal */
export declare const BadRequestResponse$outboundSchema: z.ZodType<BadRequestResponse$Outbound, z.ZodTypeDef, BadRequestResponse>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace BadRequestResponse$ {
    /** @deprecated use `BadRequestResponse$inboundSchema` instead. */
    const inboundSchema: z.ZodType<BadRequestResponse, z.ZodTypeDef, unknown>;
    /** @deprecated use `BadRequestResponse$outboundSchema` instead. */
    const outboundSchema: z.ZodType<BadRequestResponse$Outbound, z.ZodTypeDef, BadRequestResponse>;
    /** @deprecated use `BadRequestResponse$Outbound` instead. */
    type Outbound = BadRequestResponse$Outbound;
}
//# sourceMappingURL=badrequestresponse.d.ts.map