import { SubscribableArray } from "../utils/subscribable-array";
import { MessageMiddleware, MessageMiddlewareBuilder } from "./message-middleware";
interface StorageType<T> {
    get(): readonly T[] | SubscribableArray<T> | undefined;
    set(vals: SubscribableArray<T>): void;
}
export declare function useGlobalSubscribableArray<T>(storage: StorageType<T>): readonly T[];
export declare function useLateMiddlewaresBuilder(storage: StorageType<MessageMiddlewareBuilder>): MessageMiddlewareBuilder;
export declare function useMiddleware(): MessageMiddleware;
export {};
