import { BitGoRequest, DecryptKeysOptions, DecryptOptions, EncryptOptions, GetSharingKeyOptions, IEncryptionSession, IRequestTracer } from '../api';
import { IBaseCoin } from './baseCoin';
import { CoinConstructor } from './coinFactory';
import { EnvironmentName } from './environments';
import { EcdhDerivedKeypair, GetSigningKeyApi } from './keychain';
export interface BitGoBase {
    wallets(): any;
    coin(coinName: string): IBaseCoin;
    decrypt(params: DecryptOptions): string;
    decryptAsync(params: DecryptOptions): Promise<string>;
    decryptKeys(params: DecryptKeysOptions): string[];
    del(url: string): BitGoRequest;
    encrypt(params: EncryptOptions): string;
    encryptAsync(params: EncryptOptions): Promise<string>;
    createEncryptionSession(password: string): Promise<IEncryptionSession>;
    readonly env: EnvironmentName;
    fetchConstants(): Promise<any>;
    get(url: string): BitGoRequest;
    getECDHKeychain(ecdhKeychainPub?: string): Promise<any>;
    getEcdhKeypairPrivate(password: string, entId?: string): Promise<EcdhDerivedKeypair>;
    getEnv(): EnvironmentName;
    getSharingKey({ email }: GetSharingKeyOptions): Promise<any>;
    getSigningKeyForUser(enterpriseId: string, userId?: string): Promise<GetSigningKeyApi>;
    microservicesUrl(path: string): string;
    post(url: string): BitGoRequest;
    put(url: string): BitGoRequest;
    patch(url: string): BitGoRequest;
    options(url: string): BitGoRequest;
    setRequestTracer(reqTracer: IRequestTracer): void;
    url(path: string, version?: number): string;
    register(name: string, coin: CoinConstructor): void;
}
//# sourceMappingURL=bitgoBase.d.ts.map