import ms from "ms";
import { AsyncReadStream } from "@mojsoski/async-stream";
import { ICryptoProvider } from "./base";
import { EncryptedContent, EncryptedHeader, EncryptionContext, Server } from "./index";
export declare class CurrentServer<TKey> extends Server<TKey> {
    #private;
    static fromEnvironment<TKey>(provider: ICryptoProvider<TKey>): Promise<CurrentServer<TKey>>;
    constructor(name: string, publicKey: TKey, privateKey: TKey, provider: ICryptoProvider<TKey>);
    get name(): string;
    get publicKey(): TKey;
    protected get privateKey(): TKey;
    signJwt<T extends object>(obj: T, expiresIn: ms.StringValue): Promise<string>;
    decryptStream(stream: AsyncReadStream<EncryptedHeader | EncryptedContent>): AsyncReadStream<Buffer>;
    decryptContext(header: EncryptedHeader): Promise<EncryptionContext>;
    decryptBase64<T>(payloadB64: string): Promise<T>;
}
