import { HttpExecutor, ExecuteRequest, ExecuteResponse, ApiRequestSchema, ApiResponseSchema, ApiClientLoggingOptions, ApiClientValidationErrorHandler, ApiClient } from '@alt-stack/http-client-core'; export { ApiClient, ApiClientError, ApiClientLoggingOptions, ApiClientOptions, ApiClientValidationErrorContext, ApiClientValidationErrorHandler, ApiClientValidationErrorLocation, ApiRequestSchema, ApiResponse, ApiResponseSchema, BodyRequired, EndpointsWithMethod, ErrorResponse, ExecuteRequest, ExecuteResponse, ExtractErrorCodes, ExtractPathParams, ExtractRequestBody, ExtractRequestParams, ExtractRequestQuery, ExtractResponseSchema, ExtractStatusCodes, ExtractSuccessBody, ExtractSuccessCodes, HTTP_CLIENT_DEBUG_NAMESPACE, HttpExecutor, LogHandler, LogLevel, LogMeta, Logger, ParamsRequired, RequestOptions, RetryContext, SuccessResponse, TimeoutError, UnexpectedApiClientError, UnexpectedErrorResponse, ValidationError } from '@alt-stack/http-client-core'; interface FetchExecutorOptions { /** * Additional fetch options to pass to every request. * These are merged with the request-specific options. */ fetchOptions?: Omit; } /** * HTTP executor using native fetch API. * Exposes the raw Response object for advanced use cases. */ declare class FetchExecutor implements HttpExecutor { private readonly options; constructor(options?: FetchExecutorOptions); execute(request: ExecuteRequest): Promise>; } /** * Options for creating a fetch-based API client */ interface FetchClientOptions extends ApiClientLoggingOptions { baseUrl: string; headers?: Record; Request: TRequest; Response: TResponse; /** * Called when Zod validation fails for request or response data. */ onValidationError?: ApiClientValidationErrorHandler; /** * Additional fetch options to pass to every request. * Useful for credentials, cache, mode, etc. */ fetchOptions?: FetchExecutorOptions["fetchOptions"]; } /** * Type alias for the fetch-based API client. * The raw response type is the native Response object. */ type FetchApiClient = ApiClient; /** * Creates a type-safe API client using native fetch. * * @example * ```typescript * import { createApiClient } from "@alt-stack/http-client-fetch"; * import { Request, Response } from "./generated-types.js"; * * const client = createApiClient({ * baseUrl: "https://api.example.com", * Request, * Response, * fetchOptions: { credentials: "include" }, * }); * * const result = await client.get("/users/{id}", { params: { id: "123" } }); * * if (result.success) { * console.log(result.body); * // Access raw Response if needed * console.log(result.raw.headers.get("x-request-id")); * } * ``` */ declare function createApiClient(options: FetchClientOptions): FetchApiClient; export { type FetchApiClient, type FetchClientOptions, FetchExecutor, type FetchExecutorOptions, createApiClient };