import { Constructor, ContextOptions, EventOptions, IEnveloppe, SkhailService } from "@skhail/core"; import { HTTPService, HTTPServiceOptions } from "./HTTPService"; import { APIMethodBuilder, APIServiceBuilder, MethodParameter, OpenAPIBuilder } from "./Handlers/OpenAPI.utils"; export type GetAPIContextFunction = (context?: ContextType) => Promise; export type ProcessBodyFunction = (body: string) => Promise>; export interface APIServiceOptions { log: boolean; } export declare const defaultAPIOptions: APIServiceOptions; export declare class APIService extends HTTPService { static identifier: string; protected apiOptions: APIServiceOptions; constructor(options?: Partial, server?: Partial); prepare(): Promise; cleanup(): Promise; static openApiBuilder: OpenAPIBuilder; static openApiServices: { [key: string]: APIServiceBuilder; }; } export declare function Expose>(name?: string): (target: Constructor) => void; export interface ExposeMethodOptions { mode?: (typeof APIMethodBuilder.prototype)["_mode"]; path?: string; description?: string; summary?: string; success?: string; parameters?: MethodParameter[]; } export declare function ExposeMethod>({ mode, path, description, summary, success, parameters, }?: ExposeMethodOptions | undefined): (target: Service, propertyKey: string) => void;