import { WeavyClient } from './weavy';
import { ConfigurationState, ConnectionState, NetworkState, NetworkStatus, ServerState } from '../types/server.types';
import { Constructor } from '../types/generic.types';
export interface WeavyNetworkProps {
    configurationState: ConfigurationState;
    networkState: NetworkState;
    serverState: ServerState;
    connectionState: ConnectionState;
    networkStateIsPending: boolean;
    readonly network: NetworkStatus;
    triggerNetworkChange: () => void;
    addNetworkListener: (callback: (state: NetworkStatus) => void) => void;
    removeNetworkListener: (callback: (state: NetworkStatus) => void) => void;
}
export declare const WeavyNetworkMixin: <TBase extends Constructor<WeavyClient>>(Base: TBase) => {
    new (...args: any[]): {
        _configurationState: ConfigurationState;
        _configurationTimer?: number | null;
        _networkEvents: Set<(status: NetworkStatus) => void>;
        _connectionState: ConnectionState;
        _serverState: ServerState;
        _networkState: NetworkState;
        _networkStateIsPending: boolean;
        get configurationState(): ConfigurationState;
        set configurationState(state: ConfigurationState);
        get networkState(): NetworkState;
        set networkState(state: NetworkState);
        get serverState(): ServerState;
        set serverState(state: ServerState);
        get connectionState(): ConnectionState;
        set connectionState(state: ConnectionState);
        get networkStateIsPending(): boolean;
        set networkStateIsPending(isPending: boolean);
        get network(): NetworkStatus;
        requestConfigurationCheck(): void;
        triggerNetworkChange(): void;
        addNetworkListener(callback: (state: NetworkStatus) => void): void;
        removeNetworkListener(callback: (state: NetworkStatus) => void): void;
        readonly weavySid: string;
        readonly weavyId: string;
        readonly host: HTMLElement;
        cloudFilePickerUrl: string | URL;
        configurationTimeout: number;
        disableEnvironmentImports: boolean;
        gcTime: number;
        scrollBehavior: "auto" | "smooth" | "instant";
        staleTime: number;
        tokenFactoryRetryDelay: number;
        tokenFactoryTimeout: number;
        "__#private@#resolveUrl"?: (url: URL) => void;
        "__#private@#whenUrl": Promise<unknown>;
        whenUrl(): Promise<void>;
        "__#private@#url"?: URL;
        get url(): URL | undefined;
        set url(url: string | URL | null | undefined);
        get cachePrefix(): string;
        reset(): Promise<void>;
        "__#private@#isDestroyed": boolean;
        get isDestroyed(): boolean;
        destroy(): void;
    };
} & TBase;
//# sourceMappingURL=network.d.ts.map