import ts from "typescript";
import { INestiaProject } from "../../structures/INestiaProject";
import { ITypedHttpRoute } from "../../structures/ITypedHttpRoute";
import { ITypedHttpRouteParameter } from "../../structures/ITypedHttpRouteParameter";
import { ImportDictionary } from "./ImportDictionary";
export declare namespace SdkHttpParameterProgrammer {
    interface IEntry {
        key: string;
        required: boolean;
        type: ts.TypeNode;
        parameter: ITypedHttpRouteParameter;
    }
    const getAll: (route: ITypedHttpRoute) => ITypedHttpRouteParameter[];
    const getSignificant: (route: ITypedHttpRoute, body: boolean) => (ITypedHttpRouteParameter.IBody | ITypedHttpRouteParameter.IPath | ITypedHttpRouteParameter.IQuery)[];
    const getEntries: (props: {
        project: INestiaProject;
        importer: ImportDictionary;
        route: ITypedHttpRoute;
        body: boolean;
        prefix: boolean | string;
        e2e?: boolean;
    }) => IEntry[];
    const getParameterDeclarations: (props: {
        project: INestiaProject;
        importer: ImportDictionary;
        route: ITypedHttpRoute;
        body: boolean;
        prefix: boolean;
    }) => ts.ParameterDeclaration[];
    const getArguments: (props: {
        project: INestiaProject;
        route: ITypedHttpRoute;
        body: boolean;
    }) => ts.Expression[];
    const getAccessors: (props: {
        project: INestiaProject;
        importer: ImportDictionary;
        route: ITypedHttpRoute;
        body: boolean;
    }) => ts.Expression[];
}
