export class Stack { private items: T[] = []; push(item: T): void { this.items.push(item); } pop(): T | undefined { return this.items.pop(); } tryPeek(): boolean { return this.items.length > 0; } peek(): T | undefined { return this.items[this.items.length - 1]; } toArray(): T[] { return [...this.items]; } }