import { QueueProps } from '../components/queue';
export interface DayoOptions {
    to: QueueProps['to'];
    position: QueueProps['position'];
    maxLength: number;
}
export declare type DayoProps = DayoOptions;
export interface DayoImpl<Seed> {
    getQueue(): Seed[];
    setQueue(queue: Seed[]): void;
}
export declare type IDayo<Seed> = DayoImpl<Seed>;
export interface DayoState<Seed> {
    queue: Seed[];
}
export interface DayoOperators<Seed> {
    /**
     * Update target seed state for running re-rendering
     */
    rewriteQueueItem(seed: Seed): void;
    /**
     * To add a seed into queue state
     */
    addSeed(seed: Seed): void;
    /**
     * To skip a overflowed seeds in queue greater than `maxLength`
     */
    skipOverflowSeeds(opts: {
        maxLength: number;
    }): void;
}
