import type { CannotUpdateEffectReason, CannotUpdateSequenceReason } from '../SequenceManager.js';
import { type SequencePropsSubscriptionKey } from '../SequenceManager.js';
import { type CanUpdateSequencePropStatus, type PropStatuses } 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 getEffectPropStatusesCtx: ({ propStatuses, nodePath, effectIndex, }: {
    propStatuses: PropStatuses;
    nodePath: SequencePropsSubscriptionKey;
    effectIndex: number;
}) => EffectStatus;
export declare const getPropStatusesCtx: (propStatuses: PropStatuses, nodePath: SequencePropsSubscriptionKey) => Record<string, CanUpdateSequencePropStatus> | undefined;
export type GetPropStatusesType = typeof getPropStatusesCtx;
export declare const useMemoizedEffects: ({ effects, overrideId, }: {
    effects: readonly EffectDescriptor<unknown>[];
    readonly overrideId: string | null;
}) => EffectDefinitionAndStack<unknown>[];
export {};
