import { SignerType } from '../types';
import { InfoOptions, PushAPIInitializeProps } from './pushAPITypes';
import { Chat } from './chat';
import { Profile } from './profile';
import { Encryption } from './encryption';
import { PushStream } from '../pushstream/PushStream';
import { Channel } from '../pushNotification/channel';
import { Notification } from '../pushNotification/notification';
import { PushStreamInitializeProps, STREAM } from '../pushstream/pushStreamTypes';
export declare class PushAPI {
    private signer?;
    private readMode;
    private alpha;
    private account;
    private decryptedPgpPvtKey?;
    private pgpPublicKey?;
    private env;
    private progressHook?;
    chat: Chat;
    profile: Profile;
    encryption: Encryption;
    private user;
    stream: PushStream;
    channel: Channel;
    notification: Notification;
    errors: {
        type: 'WARN' | 'ERROR';
        message: string;
    }[];
    private constructor();
    static initialize(signer?: SignerType, options?: PushAPIInitializeProps): Promise<PushAPI>;
    static initialize(options?: PushAPIInitializeProps): Promise<PushAPI>;
    /**
     * This method is used to reinitialize the PushAPI instance
     * @notice - This method should only be used for fresh start of NFT accounts
     * @notice - All data will be lost after reinitialization
     */
    reinitialize(options: {
        versionMeta: {
            NFTPGP_V1: {
                password: string;
            };
        };
    }): Promise<void>;
    initStream(listen: STREAM[], options?: PushStreamInitializeProps): Promise<PushStream>;
    info(options?: InfoOptions): Promise<import("../types").IUser>;
    static ensureSignerMessage(): string;
}
