export type GetPreconditionFn = () => null | { value: T; }; export type InitializerFn = (precondition: I) => T | Promise; export interface AvailabilitySubscription { unsubscribe: () => void; } export interface Availability { subscribe: (listener: (adapter: T) => void) => AvailabilitySubscription; } export declare function createAvailability({ getPrecondition, initializer, pollIntervalMs, }: { getPrecondition: GetPreconditionFn; initializer: InitializerFn; pollIntervalMs?: number; }): Availability;