import { type APISpec } from "./api-discovery/getApiInfo";
import type { Context } from "./Context";
export type Route = {
    method: string;
    path: string;
    hits: number;
    graphql?: {
        type: "query" | "mutation";
        name: string;
    };
    apispec: APISpec;
};
export declare class Routes {
    private readonly maxEntries;
    private readonly maxGraphQLSchemas;
    private graphQLSchemas;
    private routes;
    constructor(maxEntries?: number, maxGraphQLSchemas?: number);
    addRoute(context: Context): void;
    private evictLeastUsedRouteIfNecessary;
    private getKey;
    hasGraphQLSchema(method: string, path: string): boolean;
    setGraphQLSchema(method: string, path: string, schema: string): void;
    private getGraphQLKey;
    addGraphQLField(method: string, path: string, type: "query" | "mutation", name: string): void;
    private evictLeastUsedRoute;
    clear(): void;
    asArray(): {
        method: string;
        path: string;
        hits: number;
        graphql: {
            type: "query" | "mutation";
            name: string;
        } | undefined;
        apispec: APISpec;
        graphQLSchema: string | undefined;
    }[];
}
