import { KosExecutionContext } from '../../../../../core/core/decorators/kos-execution-context';
import { HttpMethod, IKosServiceRequestParams } from '../../../../../core/core/decorators/kos-service-request';
import { ClientResponse, PathsByMethod } from '../../../../../core/util/kos-service-request';
import { paths } from './openapi';
/**
 * Type aliases for vfs API
 */
export type Api = paths;
export type ApiPath = keyof paths;
export type ValidPaths = PathsByMethod<paths>;
/**
 * Get client response type for vfs API
 */
export type ApiResponse<Path extends ApiPath, Method extends "get" | "post" | "put" | "delete" = "get"> = ClientResponse<paths, Path, Method>;
/**
 * Get execution context type for vfs API
 */
export type ExecutionContext<Path extends ApiPath = ApiPath, Method extends HttpMethod = "get"> = KosExecutionContext<paths, Path, Method>;
/**
 * Typed decorator factory for @kosServiceRequest with vfs API types
 *
 * Provides full IntelliSense and type safety for path, query params, and body
 * based on the vfs OpenAPI schema.
 *
 * @example
 * ```typescript
 * import { kosServiceRequest } from '../../utils/services/vfs/1.9.x/service';
 * import { DependencyLifecycle } from '@kosdev-code/kos-ui-sdk';
 *
 * @kosServiceRequest({
 *   path: '/api/...',
 *   method: 'get',
 *   lifecycle: DependencyLifecycle.LOAD
 * })
 * private onDataLoaded(): void {
 *   // Fully typed based on vfs API
 * }
 * ```
 */
export declare function kosServiceRequest<Path extends ApiPath, Method extends HttpMethod = "get", Response = any, TransformedResponse = Response>(params: IKosServiceRequestParams<paths, Path, Method, Response, TransformedResponse>): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
/**
 * Create an API client for vfs
 */
export declare const api: {
    get: <K extends "/api/vfs">(endpoint: K, params?: (paths[K]["get"] extends {
        parameters: infer P;
    } ? P : never) | undefined, options?: {
        ordered?: boolean | undefined;
        tracker?: string | undefined;
        destinationAddress?: string | undefined;
        bridge?: boolean | undefined;
        headers?: Record<string, string> | undefined;
        signal?: AbortSignal | undefined;
        studio?: boolean | undefined;
        fos?: boolean | undefined;
        timeout?: number | undefined;
        stream?: boolean | undefined;
        responseType?: "text" | "json" | "arraybuffer" | "blob" | undefined;
        retry?: (boolean | import('../../../../..').RetryConfig) | undefined;
    }) => Promise<import('../../../../../core/util/kos-service-request').ServiceResponse<ClientResponse<paths, K, "get">>>;
    post: <K extends never>(endpoint: K, params?: (paths[K]["post"] extends {
        parameters: infer P;
    } ? P : never) | undefined, body?: (paths[K]["post"] extends {
        requestBody: {
            content: infer B;
        };
    } ? B[keyof B] : never) | undefined, options?: {
        ordered?: boolean | undefined;
        tracker?: string | undefined;
        destinationAddress?: string | undefined;
        bridge?: boolean | undefined;
        headers?: Record<string, string> | undefined;
        signal?: AbortSignal | undefined;
        studio?: boolean | undefined;
        fos?: boolean | undefined;
        timeout?: number | undefined;
        stream?: boolean | undefined;
        responseType?: "text" | "json" | "arraybuffer" | "blob" | undefined;
        retry?: (boolean | import('../../../../..').RetryConfig) | undefined;
    }) => Promise<import('../../../../../core/util/kos-service-request').ServiceResponse<ClientResponse<paths, K, "post">>>;
    put: <K extends never>(endpoint: K, params?: (paths[K]["put"] extends {
        parameters: infer P;
    } ? P : never) | undefined, body?: (paths[K]["put"] extends {
        requestBody: {
            content: infer B;
        };
    } ? B[keyof B] : never) | undefined, options?: {
        ordered?: boolean | undefined;
        tracker?: string | undefined;
        destinationAddress?: string | undefined;
        bridge?: boolean | undefined;
        headers?: Record<string, string> | undefined;
        signal?: AbortSignal | undefined;
        studio?: boolean | undefined;
        fos?: boolean | undefined;
        timeout?: number | undefined;
        stream?: boolean | undefined;
        responseType?: "text" | "json" | "arraybuffer" | "blob" | undefined;
        retry?: (boolean | import('../../../../..').RetryConfig) | undefined;
    }) => Promise<import('../../../../../core/util/kos-service-request').ServiceResponse<ClientResponse<paths, K, "put">>>;
    delete: <K extends never>(endpoint: K, params?: (paths[K]["delete"] extends {
        parameters: infer P;
    } ? P : never) | undefined, body?: (paths[K]["put"] extends {
        requestBody: {
            content: infer B;
        };
    } ? B[keyof B] : never) | undefined, options?: {
        ordered?: boolean | undefined;
        tracker?: string | undefined;
        destinationAddress?: string | undefined;
        bridge?: boolean | undefined;
        headers?: Record<string, string> | undefined;
        signal?: AbortSignal | undefined;
        studio?: boolean | undefined;
        fos?: boolean | undefined;
        timeout?: number | undefined;
        stream?: boolean | undefined;
        responseType?: "text" | "json" | "arraybuffer" | "blob" | undefined;
        retry?: (boolean | import('../../../../..').RetryConfig) | undefined;
    }) => Promise<import('../../../../../core/util/kos-service-request').ServiceResponse<ClientResponse<paths, K, "delete">>>;
};
export default api;
//# sourceMappingURL=service.d.ts.map