import { ReducerMiddlewareCallback } from '@plitzi/plitzi-ui/hooks/useReducerWithMiddleware';
import { SchemaReducerActions } from '@plitzi/sdk-schema/SchemaReducer';
import { Schema, Segment, Style } from '@plitzi/sdk-shared';
import { StyleReducerActions } from '@plitzi/sdk-style/StyleReducer';
import { SegmentsReducerActions } from '../Segments/SegmentsReducer';
import { ActionDispatch } from 'react';
export type QueueItem<TState = any, TDispatchAction = any> = {
    action: TDispatchAction;
    prevState: TState;
    state: TState;
    dispatch: ActionDispatch<[action: TDispatchAction]>;
};
export type QueuePriority = 'normal' | 'urgent' | 'all';
export type QueueContextValue = {
    queueManager: {
        count: (priority?: QueuePriority) => number;
        enqueue: (items?: QueueItem | QueueItem[], priority?: QueuePriority) => void;
        getIsProcessing: () => boolean;
    };
    enqueueMiddleware: ReducerMiddlewareCallback<Schema | Style | Record<string, Segment>, [
        action: StyleReducerActions | SchemaReducerActions | SegmentsReducerActions
    ]>;
};
declare const QueueContext: import('react').Context<QueueContextValue>;
export default QueueContext;
