import * as ko from 'knockout'; declare class KoArray { public static syncedKoArray(...args: any[]): any; public peekLength: number; public subscribe: ko.Observable["subscribe"]; public dispose(): void; public at(index: number): T|null; public all(): T[]; public map(op: (x: T) => T2): KoArray; public peek(): T[]; public getObservable(): ko.Observable; public push(...items: T[]): void; public unshift(...items: T[]): void; public assign(newValues: T[]): void; public splice(start: number, optDeleteCount?: number, ...values: T[]): T[]; public subscribeForEach(options: { add?: (item: T, index: number, arr: KoArray) => void; remove?: (item: T, arr: KoArray) => void; addDelay?: number; }): ko.Subscription; public clampIndex(index: number): number|null; public makeLiveIndex(index?: number): ko.Observable & {setLive(live: boolean): void}; public setAutoDisposeValues(): this; } declare function syncedKoArray(...args: any[]): any; export default function koArray(initialValue?: T[]): KoArray;