import type { ContextWithState } from '../Types';
export interface RingBuffer<T> {
    buffer: T[];
    capacity: number;
    size: number;
    head: number;
    tail: number;
}
export declare function getDefaultRingBuffer<T>(capacity?: number, input?: T[]): RingBuffer<T>;
export declare function getTail<T>(data: RingBufferAtom<T>): T | undefined;
export declare function getHead<T>(data: RingBufferAtom<T>): T | undefined;
export type RingBufferAtom<T> = ReturnType<typeof createRingBufferAtom<T>>;
export declare const createRingBufferAtom: <ElementType>(context: ContextWithState, capacity?: number, defaultData?: ElementType[] | undefined) => import("../core/state/Types").StateAtom<RingBuffer<ElementType>, {
    add: (data: RingBuffer<ElementType>, element: ElementType) => boolean;
    clear: (data: RingBuffer<ElementType>) => boolean;
}>;
