export declare function useStack<T>(arr?: T[]): {
    push: (...values: T[]) => T[];
    pop: () => NonNullable<T> | null;
    clear: () => void;
    reset: (values?: T[]) => void;
    forEach: (callback: (value: T, index: number, arr: T[]) => void) => void;
    map: <Result>(callback: (value: T, index: number, arr: T[]) => Result) => Result[];
    includes: (value: T) => boolean;
    peek: () => NonNullable<T> | null;
    entries: () => IterableIterator<[number, T]>;
    values: () => IterableIterator<T>;
    keys: () => IterableIterator<number>;
    size: number;
    [Symbol.iterator](): Generator<T, void, unknown>;
};
