import type { CannotUpdateEffectReason, CannotUpdateSequenceReason } from '../SequenceManager.js';
import { type SequencePropsSubscriptionKey } from '../SequenceManager.js';
import type { CanUpdateSequencePropStatus, CodeValues } from '../use-schema.js';
import type { EffectDefinition, EffectDefinitionAndStack, EffectDescriptor } from './effect-types.js';
export declare const useMemoizedEffectDefinitions: (effects: readonly EffectDescriptor<unknown>[]) => readonly EffectDefinition<unknown>[];
type EffectStatus = {
    type: 'cannot-update-sequence';
    reason: CannotUpdateSequenceReason;
} | {
    type: 'cannot-update-effect';
    reason: CannotUpdateEffectReason;
} | {
    type: 'can-update-effect';
    props: Record<string, CanUpdateSequencePropStatus>;
};
export declare const getEffectCodeValuesCtx: ({ codeValues, nodePath, effectIndex, }: {
    codeValues: CodeValues;
    nodePath: SequencePropsSubscriptionKey;
    effectIndex: number;
}) => EffectStatus;
export declare const getCodeValuesCtx: (codeValues: CodeValues, nodePath: SequencePropsSubscriptionKey) => Record<string, CanUpdateSequencePropStatus> | undefined;
export type GetCodeValuesType = typeof getCodeValuesCtx;
export declare const useMemoizedEffects: ({ effects, overrideId, }: {
    effects: readonly EffectDescriptor<unknown>[];
    readonly overrideId: string | null;
}) => EffectDefinitionAndStack<unknown>[];
export {};
