import { Subject } from 'rxjs';
import { t, TypeSystem } from '../common';
import { HttpClient } from '../HttpClient';
declare type ClientInput = string | number | t.IHttpClientOptions;
declare type Options = {
    http?: ClientInput | t.IHttpClient;
    cache?: t.IMemoryCache;
    events$?: Subject<t.TypedSheetEvent>;
};
export declare class Client {
    static Http: typeof HttpClient;
    static Type: typeof TypeSystem;
    static http(input?: ClientInput): t.IHttpClient;
    static type(input?: Options | string | number): {
        http: t.IHttpClient;
        fetch: t.ISheetFetcher;
        defs(ns: string | t.INsUri): Promise<t.INsTypeDef[]>;
        typescript(ns: string | t.INsUri): Promise<{
            readonly header: string;
            readonly declaration: string;
            save(fs: import("@platform/fs.types").IFs, path: string): Promise<{
                path: string;
                text: string;
            }>;
            toString(): string;
        }>;
        sheet<T>(ns: string | t.INsUri): Promise<t.ITypedSheet<T>>;
    };
    static sheet<T>(ns: string | t.INsUri, options?: Options): Promise<t.ITypedSheet<T>>;
}
export {};
