export declare class Stack { top: T[]; bottom: T[]; iterators: Generator[]; /** * Construct a new `Stack` * @param sources are transformed into iterators, their values are returned from `.pop_top()` */ constructor(...sources: Iterable[]); /** * ### Last-In-First-Out * Push items onto the top of this stack * @returns the total number of pushed elements remaining */ push_top(...items: T[]): number; /** * ### First-In-First-Out * Push items below the bottom of this stack * @returns the total number of remaining elements push to the bottom of this stack */ push_bottom(...items: T[]): number; /** * Pop an element from the top of this stack * @returns the popped element, or undefined if this stack is empty */ pop_top(): T | undefined; /** * Pop an element from the bottom of this stack * @returns the popped element, or undefined if no elements were pushed to the bottom of this stack */ pop_bottom(): T | undefined; }