import { Item } from './factories'; import * as ts from 'typescript'; export declare type Responses = { [key: string]: { description: string; content: { [key: string]: { schema: Item; }; }; }; }; export declare type Parameters = { name: string; description: string; in: string; required?: boolean; schema: Item; }[]; export declare type OpenAPIv3Operation = { operationId: string; summary: string; description?: string; tags?: string[]; parameters?: Parameters; responses: Responses; requestBody?: Responses; }; export declare type ApiMethodInfo = { operationId: string; summary: string; description?: string; method: string; path: string; parameters?: Parameters; responses: Responses; requestBody?: Responses; }; export declare const isPageResponse: (schema: Item) => boolean; export declare const isResponse: (schema: Item) => boolean; export declare const createReturn: (schema: Item, objectName: string, schemas: { [key: string]: Item; }) => { type: ts.TypeLiteralNode; deps: (string | { [key: string]: string; })[]; enums: ts.EnumDeclaration[]; } | { type: ts.TypeNode; deps: string[]; }; export declare const createLifterCall: (schema: Item) => { lifter: ts.ArrowFunction | ts.CallExpression | ts.Identifier; returns: ts.TypeReferenceNode; deps: (string | { [key: string]: string; })[]; }; export declare const createReturns: (def: ApiMethodInfo, schemas: { [key: string]: Item; }) => { deps: (string | { [key: string]: string; })[]; types: (ts.TypeNode | ts.TypeLiteralNode)[]; lifters: (ts.Identifier | ts.ArrowFunction | ts.CallExpression)[]; }; export declare const commentOperation: (p: ts.Node, def: ApiMethodInfo) => void; export declare const generateParamsReference: (type: string, operationId: string, def: ApiMethodInfo) => ts.ParameterDeclaration[]; export declare const generateParams: (schemas: any, def: ApiMethodInfo) => { params: ts.ParameterDeclaration[]; deps: (string | { [key: string]: string; })[]; paramProperties: ts.PropertyAssignment[]; enums: ts.EnumDeclaration[]; }; export declare const createOperationCall: (clientType: string, operationId: string, schemas: any, def: ApiMethodInfo) => { method: ts.ArrowFunction; deps: (string | { [key: string]: string; })[]; enums: ts.EnumDeclaration[]; }; export declare const commentClientInstanceType: (clientInstanceType: ts.TypeAliasDeclaration) => void;