import type { CompiledFormula, ParsedCellReferenceInfo, ParsedDependencyReference } from '@bilig/formula';
import type { FormulaTemplateResolution } from '../../formula/template-bank.js';
import type { RuntimeFormula } from '../runtime-state.js';
export interface InitialTemplateFormulaCacheEntry {
    readonly resolution: FormulaTemplateResolution;
    readonly anchorRow: number;
    readonly anchorCol: number;
    readonly anchorCompiled: CompiledFormula;
}
export interface InitialPrefixSumTemplateKey {
    readonly aggregateKind: NonNullable<CompiledFormula['directAggregateCandidate']>['aggregateKind'];
    readonly callee: string;
    readonly key: string;
    readonly rangeCol: number;
    readonly rangeColumn: string;
    readonly resultOffset: number;
    readonly usesRowLiteralSuffix: boolean;
}
export interface InitialSimpleRowRelativeBinaryTemplate {
    readonly key: string;
    readonly parsedRefs: {
        readonly symbolicRefs: string[];
        readonly parsedDeps: ParsedDependencyReference[];
        readonly parsedSymbolicRefs: ParsedCellReferenceInfo[];
    };
    readonly usesRowLiteralSuffix: boolean;
}
export interface InitialSimpleRowRelativeBinaryTemplateKey {
    readonly key: string;
    readonly usesRowLiteralSuffix: boolean;
}
export declare function tryBuildInitialSimpleRowRelativeBinaryTemplateKey(source: string, ownerRow: number, ownerCol: number): string | undefined;
export declare function tryBuildInitialSimpleRowRelativeBinaryTemplateKeyInfo(source: string, ownerRow: number, ownerCol: number): InitialSimpleRowRelativeBinaryTemplateKey | undefined;
export declare function tryBuildInitialSimpleRowRelativeBinaryTemplate(source: string, ownerRow: number, ownerCol: number): InitialSimpleRowRelativeBinaryTemplate | undefined;
export declare function tryBuildInitialPrefixSumTemplateKey(source: string, ownerRow: number, ownerCol: number): InitialPrefixSumTemplateKey | undefined;
export declare function translateInitialPrefixSumFormula(entry: InitialTemplateFormulaCacheEntry, source: string, ownerRow: number, ownerCol: number, templateKey: InitialPrefixSumTemplateKey): FormulaTemplateResolution;
export declare function initialFormulaFamilyShapeKey(formula: RuntimeFormula): string;
