import type { SequenceSchema } from './sequence-field-schema.js';
import type { CanUpdateSequencePropsResponse, SequencePropsSubscriptionKey } from './SequenceManager.js';
export type CanUpdateSequencePropStatusTrue = {
    canUpdate: true;
    codeValue: unknown;
};
export type CanUpdateSequencePropStatusKeyframe = {
    frame: number;
    value: unknown;
};
export type CanUpdateSequencePropStatusFalse = {
    canUpdate: false;
    reason: 'computed';
    keyframes?: CanUpdateSequencePropStatusKeyframe[];
};
export type CanUpdateSequencePropStatus = CanUpdateSequencePropStatusTrue | CanUpdateSequencePropStatusFalse;
export type DragOverrides = Record<string, Record<string, unknown>>;
export type EffectDragOverrides = Record<string, Record<string, unknown>>;
export type CodeValues = Record<string, CanUpdateSequencePropsResponse>;
export type GetCodeValues = (nodePath: SequencePropsSubscriptionKey) => Record<string, CanUpdateSequencePropStatus> | undefined;
export type GetEffectCodeValues = (nodePath: SequencePropsSubscriptionKey, effectIndex: number) => Record<string, CanUpdateSequencePropStatus> | undefined;
export type GetDragOverrides = (nodePath: SequencePropsSubscriptionKey) => DragOverrides[string];
export type GetEffectDragOverrides = (nodePath: SequencePropsSubscriptionKey, effectIndex: number) => Record<string, unknown>;
export declare const computeEffectiveSchemaValuesDotNotation: ({ schema, currentValue, overrideValues, propStatus, }: {
    schema: SequenceSchema;
    currentValue: Record<string, unknown>;
    overrideValues: Record<string, unknown>;
    propStatus: Record<string, CanUpdateSequencePropStatus> | undefined;
}) => {
    merged: Record<string, unknown>;
    propsToDelete: Set<string>;
};
