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 kos API
 */
export type Api = paths;
export type ApiPath = keyof paths;
export type ValidPaths = PathsByMethod<paths>;
/**
 * Get client response type for kos API
 */
export type ApiResponse<Path extends ApiPath, Method extends "get" | "post" | "put" | "delete" = "get"> = ClientResponse<paths, Path, Method>;
/**
 * Get execution context type for kos API
 */
export type ExecutionContext<Path extends ApiPath = ApiPath, Method extends HttpMethod = "get"> = KosExecutionContext<paths, Path, Method>;
/**
 * Typed decorator factory for @kosServiceRequest with kos API types
 *
 * Provides full IntelliSense and type safety for path, query params, and body
 * based on the kos OpenAPI schema.
 *
 * @example
 * ```typescript
 * import { kosServiceRequest } from '../../utils/services/kos/daily/service';
 * import { DependencyLifecycle } from '@kosdev-code/kos-ui-sdk';
 *
 * @kosServiceRequest({
 *   path: '/api/...',
 *   method: 'get',
 *   lifecycle: DependencyLifecycle.LOAD
 * })
 * private onDataLoaded(): void {
 *   // Fully typed based on kos 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 kos
 */
export declare const api: {
    get: <K extends "/api/kos/network/interfaces" | "/api/kos/ui/plugins/context/{*name}" | "/api/kos/ui/plugins/contexts" | "/api/kos/localization/context/{*path}" | "/api/kos/localization/contexts" | "/api/kos/browser" | "/api/kos/browser/redirect" | "/api/kos/future/traces" | "/api/kos/future/traces/{traceId}/events" | "/api/kos/ota/paused" | "/api/kos/ota/artifacts" | "/api/kos/state/paths" | "/api/kos/state/{path}" | "/api/kos/hardware/resolver/identityMappings" | "/api/kos/config/schema" | "/api/kos/config/schema/{path}" | "/api/kos/config/{path}" | "/api/kos/config/details/{options}" | "/api/kos/config/details/{path}/{options}" | "/api/kos/config/value/merged/{scopedPath}/{attr}" | "/api/kos/config/value/{scopedPath}/{attr}" | "/api/kos/config/bean/defaults/{scopedPath}" | "/api/kos/config/bean/merged/{path}" | "/api/kos/config/bean/overrides/{scopedPath}" | "/api/kos/storage/devices" | "/api/kos/update/available" | "/api/kos/troubles" | "/api/kos/troubles/{troubleId}" | "/api/kos/handles" | "/api/kos/handles/{path}" | "/api/kos/handles/{path}/{view}" | "/api/kos/handles/views" | "/api/kos/openapi/{*baseUrl}" | "/api/kos/manifest/node" | "/api/kos/manifest/device" | "/api/kos/manifest/info" | "/api/kos/apps" | "/api/kos/apps/started" | "/api/kos/time/timezone" | "/api/kos/regions" | "/api/kos/regions/info" | "/api/kos/descriptor/{path}" | "/api/kos/descriptor/{path}/{dotted}" | "/api/kos/logs/rotateAll" | "/api/kos/logs/node/{nodeId}/streams" | "/api/kos/logs/node/{nodeId}/{stream}/blocks" | "/api/kos/logs/node/{nodeId}/{stream}/blocks/{blockId}" | "/api/kos/logs/rotate/{stream}" | "/api/kos/logs/overrides" | "/api/kos/nodeMgr/node/{nodeId}/blockedManifests" | "/api/kos/nodeMgr/blockedManifests" | "/api/kos/logs/groups" | "/api/kos/logs/overrides/{nodeType}" | "/api/kos/logs/overrides/{nodeType}/{typePrefix}" | "/api/kos/studio/properties" | "/api/kos/criticalData/sources" | "/api/kos/criticalData/data" | "/api/kos/criticalData/data/{name}" | "/api/kos/device" | "/api/kos/device/assemblies" | "/api/kos/device/serialNumber">(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 "/api/kos/network/set-connection/{nodeId}" | "/api/kos/network/connect-node-to-wifi" | "/api/kos/browser/{nodeId}" | "/api/kos/browser/{nodeId}/{name}" | "/api/kos/browser/intent" | "/api/kos/browser/url" | "/api/kos/future/{futureId}/cancel" | "/api/kos/ota/resume/{name}" | "/api/kos/ota/cancel" | "/api/kos/ota/cancel/{name}" | "/api/kos/ota/pause/{name}" | "/api/kos/hardware/resolver/identityMappings/{boardPath}" | "/api/kos/config/{path}" | "/api/kos/config/bulk" | "/api/kos/update/install" | "/api/kos/troubles/resolve" | "/api/kos/troubles/resolve/{troubleId}" | "/api/kos/time/date" | "/api/kos/time/timezone" | "/api/kos/time/time" | "/api/kos/logs/node/{nodeId}/{stream}/subscribe" | "/api/kos/logs/node/{nodeId}/{stream}/unsubscribe" | "/api/kos/logs/overrides" | "/api/kos/nodeMgr/reboot" | "/api/kos/nodeMgr/node/{nodeId}/reboot" | "/api/kos/nodeMgr/node/{nodeId}/blockedManifests/{manifestId}" | "/api/kos/nodeMgr/blockedManifests/{manifestId}" | "/api/kos/criticalData/data" | "/api/kos/criticalData/data/{name}" | "/api/kos/device/serialNumber/{serialNum}">(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 "/api/kos/hardware/resolver/identityMappings/{boardPath}" | "/api/kos/logs/overrides" | "/api/kos/nodeMgr/node/{nodeId}/blockedManifests" | "/api/kos/nodeMgr/node/{nodeId}/blockedManifests/{manifestId}" | "/api/kos/nodeMgr/blockedManifests/{manifestId}" | "/api/kos/criticalData/data/{name}">(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