import { ISigner } from "applesauce-signers";
import { EventTemplate, NostrEvent } from "nostr-tools";
import { Observable } from "rxjs";
/** A signer class that proxies requests to another signer that isn't created yet */
export declare class ProxySigner<T extends ISigner> implements ISigner {
    protected upstream: Observable<T | undefined>;
    protected error?: string | undefined;
    private _signer;
    protected get signer(): T;
    get nip04(): {
        encrypt: (pubkey: string, plaintext: string) => Promise<string>;
        decrypt: (pubkey: string, ciphertext: string) => Promise<string>;
    };
    get nip44(): {
        encrypt: (pubkey: string, plaintext: string) => Promise<string>;
        decrypt: (pubkey: string, ciphertext: string) => Promise<string>;
    };
    constructor(upstream: Observable<T | undefined>, error?: string | undefined);
    signEvent(template: EventTemplate): Promise<NostrEvent>;
    getPublicKey(): Promise<string>;
}
