export class Deque<T> {
    constructor(initial_size?: number)

    isEmpty(): boolean

    clear(): boolean

    size(): number

    isEmpty(): boolean

    remove(e: T): boolean

    has(e: T): boolean

    peek(): T | undefined

    getFirst(): T | undefined

    getLast(): T | undefined

    getElementByIndex(index: number): T | undefined

    pop(): T

    add(e: T): void

    addFirst(e: T): void

    removeFirst(): T

    addLast(e: T): void

    removeLast(): T

    toArray(result?:T[], result_offset?:number):T[]
}
