import { type ReactNode } from 'react';
import type { DragEndEvent } from '@dnd-kit/core';
import type { EditorBlockId } from '@riverbankcms/core';
import type { Theme } from '@riverbankcms/blocks';
import type { BlockFocusRequest, BlockFocusTarget, BlockItem } from './types';
export type BlockListContextValue = {
    blockList: BlockItem[];
    setBlockList: (blocks: BlockItem[]) => void;
    reorderId: string | null;
    focusRequest: BlockFocusRequest | null;
    triggerFocus: (target: BlockFocusTarget) => void;
    handleMove: (blockId: string, direction: number) => void;
    onDragEnd: (event: DragEndEvent) => void;
    activeBlockId: EditorBlockId | null;
    setActiveBlockId: (blockId: EditorBlockId | null) => void;
    theme: Theme | null | undefined;
};
export declare function useBlockListContext(): BlockListContextValue;
export declare function useBlockListContextOptional(): BlockListContextValue | null;
type BlockListProviderProps = {
    value: BlockListContextValue;
    children: ReactNode;
};
export declare function BlockListProvider({ value, children }: BlockListProviderProps): import("react/jsx-runtime").JSX.Element;
export {};
