import type { FieldResolver, QueryUpdate, ResolverResult } from "../tools/search/field_resolver.js";
import type { Join } from "../tools/search/multi_match_subquery.js";
import type { App } from "./app.js";
import type { Collection } from "./collection_model.js";
import type { RequestInfo } from "./event_request.js";
export declare class RecordFieldResolver implements FieldResolver {
    app: App;
    baseCollection: Collection;
    requestInfo: RequestInfo | null;
    staticRequestInfo: Record<string, unknown>;
    allowedFields: string[];
    allowHiddenFields: boolean;
    joins: Join[];
    listRuleJoins: Map<string, Collection> | null;
    joinAliasSuffix: string;
    baseCollectionAlias: string;
    generatedNameIndex: number;
    joinAliasIndex: number;
    constructor(app: App, baseCollection: Collection, requestInfo: RequestInfo | null, allowHiddenFields: boolean);
    AllowedFields(): string[];
    SetAllowedFields(newAllowedFields: string[]): void;
    setAllowedFields(newAllowedFields: string[]): void;
    AllowHiddenFields(): boolean;
    SetAllowHiddenFields(allowHiddenFields: boolean): void;
    setAllowHiddenFields(allowHiddenFields: boolean): void;
    Resolve(fieldName: string): ResolverResult;
    resolve(fieldName: string): ResolverResult;
    UpdateQuery(query: QueryUpdate): QueryUpdate;
    updateQuery(query: QueryUpdate): QueryUpdate;
    resolveStaticRequestField(...path: string[]): ResolverResult;
    nextGeneratedName(prefix: string): string;
    nextJoinAliasSuffix(): string;
    loadCollection(collectionNameOrId: string): Collection | null;
    registerJoin(tableName: string, tableAlias: string, on?: {
        sql: string;
        params: unknown[];
    } | null, params?: unknown[]): void;
}
import { extractNestedVal, getCollectionField, parseAndRun, splitModifier, issetModifier, lowerModifier } from "./record_field_resolver_runner.js";
export { extractNestedVal, getCollectionField, parseAndRun, splitModifier, issetModifier, lowerModifier };
export declare const FieldTypeNumber = "number";
