import type { OperationMenuItem } from '@redocly/openapi-docs/lib/models/types.js';
import type { ContentItemModel, OpenAPIParser, OperationModel, Options, SchemaModel } from '@redocly/openapi-docs';
import type { OperationParameter } from '@redocly/theme/core/types';
import type { SearchDocument } from '../../types';
type OperationParameterModel = OperationModel['parameters'][number];
type SchemaFieldModel = NonNullable<SchemaModel['fields']>[number];
export declare abstract class OpenApiSearchBuilder {
    #private;
    protected readonly parser: OpenAPIParser;
    protected readonly options: Options;
    protected readonly basePath: string;
    constructor(parser: OpenAPIParser, options: Options, basePath: string);
    getOperation(item: OperationMenuItem): OperationModel;
    protected buildSearchDocument(item: ContentItemModel): SearchDocument | undefined;
    protected abstract buildOperationDocument(operation: OperationModel, rbac: Record<string, string> | undefined): SearchDocument | undefined;
    protected collectOperationSearchParameters(operation: OperationModel): OperationParameter[];
    protected abstract addSchema(parameters: Record<string, OperationParameter>, schema: SchemaModel | undefined, mediaType: string | undefined, place: string, isResponse: boolean, path?: string[], visitedPointers?: Set<string>, level?: number): void;
    protected createOperationDocumentBase(operation: OperationModel, rbac?: Record<string, string> | undefined): SearchDocument | undefined;
    protected createOperationParameter(parameter: OperationParameterModel): OperationParameter;
    protected createSchemaFieldParameter(field: SchemaFieldModel, schema: SchemaModel, place: string, mediaType: string | undefined, path: string[]): OperationParameter;
    protected getParameterId(param: OperationParameter): string;
}
export {};
//# sourceMappingURL=openapi-search-builder.d.ts.map