import { type LookupNumericColumnWritePlan, type OperationLookupPlanner } from './operation-lookup-planner.js';
type LookupPlanner = Pick<OperationLookupPlanner, 'planExactLookupNumericColumnWrite' | 'planApproximateLookupNumericColumnWrite'>;
export interface OperationLookupNumericWritePlanRequest {
    readonly isRestore: boolean;
    readonly hasAggregateDependents: boolean;
    readonly hasExactLookupDependents: boolean;
    readonly hasSortedLookupDependents: boolean;
    readonly sheetId: number;
    readonly sheetName: string;
    readonly row: number;
    readonly col: number;
    readonly oldExactLookupNumber: number | undefined;
    readonly newExactLookupNumber: number | undefined;
    readonly oldApproximateLookupNumber: number | undefined;
    readonly newApproximateLookupNumber: number | undefined;
    readonly planner: LookupPlanner;
}
export interface OperationLookupNumericWritePlans {
    readonly exact: LookupNumericColumnWritePlan | undefined;
    readonly sorted: LookupNumericColumnWritePlan | undefined;
    readonly exactHandled: boolean;
    readonly sortedHandled: boolean;
    readonly needsLookupValueRead: boolean;
    readonly handledLookupDependents: boolean;
}
export declare function planOperationLookupNumericWrites(request: OperationLookupNumericWritePlanRequest): OperationLookupNumericWritePlans;
export declare function applyOperationLookupNumericWriteTailPatches(plans: Pick<OperationLookupNumericWritePlans, 'exact' | 'sorted'>, request: {
    readonly row: number;
    readonly oldExactLookupNumber: number | undefined;
    readonly newExactLookupNumber: number | undefined;
    readonly oldApproximateLookupNumber: number | undefined;
    readonly newApproximateLookupNumber: number | undefined;
    readonly columnVersionAfterWrite: number;
}): {
    readonly exact: boolean;
    readonly sorted: boolean;
};
export {};
