import { BaseChainElement as BCE, BaseChain as BC, SingleChain as SC, SingleChainElementOrNull as SCEON, IDoublyChain as DC, DoublyChainElement as DCE, SingleCircleChain as SCC, SingleCircleChainElement as SCCE, DoublyCircleChain as DCC, N } from '../typings'; declare class BaseChain implements BC { head: BCE | SCEON; length: N; readonly capacity: number; constructor(capacity?: N); toArray(): any[]; isValidRange(p: N): boolean; isEmpty(): boolean; isFull(): boolean; } declare class SingleChain extends BaseChain implements SC { head: SCEON; length: N; capacity: number; constructor(capacity?: N); createNode(v: T, p?: N): { value: T; next: any; position: number; }; append(p: T): number | Error; insert(v: T, p: N): boolean; removeAt(p: N): T; reverseSelf(): this; reverse(): any; clear(): void; setPosition(from?: N): void; slice(from?: N, to?: N): SingleChain; } declare class DoublyChain extends BaseChain implements DC { head: DCE | null; tail: DCE | null; length: N; constructor(capacity?: N); createNode(v: T, p: N): { value: T; position: number; prev: any; next: any; }; append(v: T): number | Error; insert(v: T, p: N): boolean; removeAt(p: N): T; clear(): void; setPosition(from?: N): void; } declare class SingleCircleChain extends SingleChain implements SCC { head: SCCE | null; length: N; tail: SCCE | null; constructor(capacity?: N); toArray(): any[]; createNode(v: T, p: N): SCCE; append(v: T): number | Error; insert(v: T, p: N): boolean; removeAt(p: N): T; setPosition(from?: N): void; } declare class DoublyCircleChain extends DoublyChain implements DCC { constructor(capacity?: N); createNode(v: T, p: number): { value: T; position: number; next: any; prev: any; }; append(p: T): number | Error; insert(v: T, p: N): boolean; removeAt(p: N): T; toArray(): any[]; setPosition(from?: N): void; } export { BaseChain, SingleChain, DoublyChain, SingleCircleChain, DoublyCircleChain };