type AnyFunction = (...args: any[]) => any;
export interface Subscribable<T extends AnyFunction = AnyFunction> {
    addCallback: (callback: T, id?: string) => string;
    removeCallback: (id: string | T) => void;
    getCallbacks: () => T[];
    getCallback: (id: string) => T;
    getCallbackIds: () => string[];
    clearCallbacks: () => void;
    runCallbacks: T;
}
export declare const subscribable: <T extends AnyFunction = AnyFunction>() => Subscribable<T>;
export {};
