export type SubscribableArrayCallback<T> = (vals: readonly T[]) => void;
export interface SubscribableArraySubscription {
    unsubscribe(): void;
}
export interface SubscribableArray<T> {
    push(val: T): void;
    unshift(val: T): void;
    subscribe(callback: SubscribableArrayCallback<T>): SubscribableArraySubscription;
    getArray(): readonly T[];
}
export declare function createSubscribableArray<T>(originalValue?: readonly T[]): SubscribableArray<T>;
export declare function useSubscribableArray<T>(array: SubscribableArray<T>): readonly T[];
