import type { EdgeSlice } from '../../edge-arena.js';
export interface OperationColumnDependencyTrackerService {
    readonly hasTrackedExactLookupDependents: (sheetId: number, col: number) => boolean;
    readonly hasTrackedSortedLookupDependents: (sheetId: number, col: number) => boolean;
    readonly hasTrackedDirectRangeDependents: (sheetId: number, col: number) => boolean;
    readonly hasTrackedColumnDependents: (sheetId: number, col: number) => boolean;
    readonly hasTrackedColumnDependentsAnywhere: () => boolean;
    readonly hasNoCellDependents: (cellIndex: number) => boolean;
}
export interface OperationTrackedColumnDependencyFlags {
    readonly hasExactLookupDependents: boolean;
    readonly hasSortedLookupDependents: boolean;
    readonly hasAggregateDependents: boolean;
    readonly needsLookupValueRead: boolean;
}
export interface OperationTrackedColumnDependencyFlagResolver {
    readonly clear: () => void;
    readonly resolve: (sheetId: number, col: number) => OperationTrackedColumnDependencyFlags;
}
export declare function createOperationColumnDependencyTrackerService(args: {
    readonly reverseState: {
        readonly reverseCellEdges: Array<EdgeSlice | undefined>;
        readonly reverseExactLookupColumnEdges: Map<number, EdgeSlice>;
        readonly reverseSortedLookupColumnEdges: Map<number, EdgeSlice>;
        readonly reverseAggregateColumnEdges: Map<number, Set<number>>;
    };
    readonly workbook: {
        getSheetNameById(sheetId: number): string | undefined;
    };
    readonly hasRegionFormulaSubscriptionsForColumn: (sheetName: string, col: number) => boolean;
    readonly hasRegionFormulaSubscriptionsForColumnAt?: ((sheetId: number, col: number) => boolean) | undefined;
    readonly hasRegionFormulaSubscriptions?: (() => boolean) | undefined;
}): OperationColumnDependencyTrackerService;
export declare function createOperationTrackedColumnDependencyFlagResolver(args: {
    readonly hasTrackedExactLookupDependents: (sheetId: number, col: number) => boolean;
    readonly hasTrackedSortedLookupDependents: (sheetId: number, col: number) => boolean;
    readonly hasTrackedDirectRangeDependents: (sheetId: number, col: number) => boolean;
}): OperationTrackedColumnDependencyFlagResolver;
