import { QueryOptions } from 'odata-query';
import { FilterExpression } from '../../orm/operators.js';
import { SystemColumnsOption } from '../query/types.js';
import { NavigationConfig } from '../query/url-builder.js';
import { ExpandConfig } from './shared-types.js';
export interface QueryReadBuilderState<TSchema> {
    queryOptions: Partial<QueryOptions<TSchema>>;
    filterExpression?: FilterExpression;
    expandConfigs: ExpandConfig[];
    singleMode: "exact" | "maybe" | false;
    isCountMode: boolean;
    includeCountMode: boolean;
    fieldMapping?: Record<string, string>;
    systemColumns?: SystemColumnsOption;
    navigation?: NavigationConfig;
}
export declare function createInitialQueryReadBuilderState<TSchema>(): QueryReadBuilderState<TSchema>;
export declare function cloneQueryReadBuilderState<TSchema>(state: QueryReadBuilderState<TSchema>, changes?: Partial<QueryReadBuilderState<TSchema>> & {
    queryOptions?: Partial<QueryOptions<TSchema>>;
}): QueryReadBuilderState<TSchema>;
export interface RecordReadBuilderState {
    selectedFields?: string[];
    expandConfigs: ExpandConfig[];
    fieldMapping?: Record<string, string>;
    systemColumns?: SystemColumnsOption;
}
export declare function createInitialRecordReadBuilderState(): RecordReadBuilderState;
export declare function cloneRecordReadBuilderState(state: RecordReadBuilderState, changes?: Partial<RecordReadBuilderState>): RecordReadBuilderState;
