import { KyInstance, Options, KyResponse } from 'ky'; export { KyInstance, Options as KyOptions, KyResponse } from 'ky'; 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 KyExecutorOptions { /** * Use a custom ky instance. * Useful for pre-configured ky instances with hooks, defaults, etc. */ ky?: KyInstance; /** * Additional ky options to pass to every request. * These are merged with the request-specific options. */ kyOptions?: Omit; } /** * HTTP executor using ky library. * Exposes the raw KyResponse object for advanced use cases. */ declare class KyExecutor implements HttpExecutor { private readonly kyInstance; private readonly kyOptions; constructor(options?: KyExecutorOptions); execute(request: ExecuteRequest): Promise>; } /** * Options for creating a ky-based API client */ interface KyClientOptions extends ApiClientLoggingOptions { baseUrl: string; headers?: Record; Request: TRequest; Response: TResponse; /** * Called when Zod validation fails for request or response data. */ onValidationError?: ApiClientValidationErrorHandler; /** * Use a custom ky instance. * Useful for pre-configured ky instances with hooks, defaults, etc. */ ky?: KyInstance; /** * Additional ky options to pass to every request. * Useful for hooks, retry config, prefixUrl, etc. */ kyOptions?: KyExecutorOptions["kyOptions"]; } /** * Type alias for the ky-based API client. * The raw response type is the KyResponse object. */ type KyApiClient = ApiClient; /** * Creates a type-safe API client using ky. * * @example * ```typescript * import { createApiClient } from "@alt-stack/http-client-ky"; * import { Request, Response } from "./generated-types.js"; * * const client = createApiClient({ * baseUrl: "https://api.example.com", * Request, * Response, * kyOptions: { * hooks: { * beforeRequest: [(request) => { * console.log("Making request to:", request.url); * }], * }, * }, * }); * * const result = await client.get("/users/{id}", { params: { id: "123" } }); * * if (result.success) { * console.log(result.body); * // Access raw KyResponse if needed * console.log(result.raw.headers.get("x-request-id")); * } * ``` */ declare function createApiClient(options: KyClientOptions): KyApiClient; export { type KyApiClient, type KyClientOptions, KyExecutor, type KyExecutorOptions, createApiClient };