/**
 * [[include:./user/README.md]]
 *
 * ## &lt;UserIcon /&gt;
 * <UserIcon />
 * @module User
 * @group Users
 */
import type { IGunUserInstance, ISEAPair } from 'gun';
export declare const selectedUser: {
    pub: string;
};
/**
 * @example
 * {
 *  "initiated": true,
 *  "is": {
 *    "pub": "XnpLVDYZWdl1NNgo6BlD6e3-n3Fzi-ZzVrzbIgYCYHo.9-hHUHaWNaAE6tMp800MMzNtDLtjicS53915IrBu4uc",
 *    "epub": "wAvPlMAg4jvUvK4sPpVyF1CAWnRCMu1YpHnoDrVDg-o.l79QDmdPCLEiO0F_WkB3zYLpJt-lANtyhNmHSM4bTes",
 *    "alias": "XnpLVDYZWdl1NNgo6BlD6e3-n3Fzi-ZzVrzbIgYCYHo.9-hHUHaWNaAE6tMp800MMzNtDLtjicS53915IrBu4uc"
 *  },
 *  "name": "Accord",
 *  "pub": "XnpLVDYZWdl1NNgo6BlD6e3-n3Fzi-ZzVrzbIgYCYHo.9-hHUHaWNaAE6tMp800MMzNtDLtjicS53915IrBu4uc",
 *  "color": "#f55c3d",
 *  "pulse": 1642708061615,
 *  "pulser": 12,
 *  "blink": false,
 *  "safe": {
 *    "saved": true,
 *    "password": null,
 *    "enc": "SEA{\"ct\":\"E+6GViU9dTuidruOCNAoBITE+AlGNRgiABplSbL5fh4v1P+fhF33MuBwKd3ssBNi2kJ1sCzvS/YLmzivECA5ARZPGVbgXTSj8AE9kCz0Ac/8ushlsfBNdt8s3+a3OPVxMIevnT01uqcgr75Zp4TugIg/YuB5WltA9RHsgWEMlo+X+tRGaqG5rfw4sAmTSV0P8evMgM9rN/Un5t/WeDbvIPNXqZEmtxwAhMUZwOJWZckNZmNwpxnelFO0BwmauWfzkXuqGeSxNhMeaZi+VoRDMUvTjT68DLBnVoOhFhcdco+RW8AJfktZHZ4GF2IzFnQmTGpUd2LfvIY/Yn1eNJH7iQ5w41ChiYB/zhgQCOc5ur51PV6swAuN595vUNn7+0J1JRSNGzW2V/4j4YR4IEsAoqOtdn2Y21ga/CFdrE0=\",\"iv\":\"LtODTV+LBzhWHqUcptUO\",\"s\":\"XCL9Uj1YlPcV\"}",
 *  "pass": "SEA{\"ct\":\"8wNClMx/ebfou+gGWdf+bbx0TAgc9RU=\",\"iv\":\"NPgHkI+Ke+i/mw+3chlr\",\"s\":\"3VzGv06Y4fQ+\"}"
 *  }
 * }
 */
export interface User {
    initiated: boolean;
    auth: boolean;
    is: {
        pub?: string;
        epub?: string;
        alias?: ISEAPair | string;
    };
    name: string;
    pub: string;
    color: string;
    pulse: number;
    pulser: any;
    blink: boolean;
    safe: {
        saved: boolean;
        password: string;
        enc: string;
        pass: string;
        rooms: object;
    };
    db?: IGunUserInstance;
    pair(): ISEAPair;
    encrypt(data: string): Promise<string>;
    decrypt(data: string): Promise<string>;
    secret(data: string): Promise<string>;
}
export declare const user: User;
/**
 * Get access to current logged in user
 * @example
 * import { useUser } from '@gun-vue/composables'
 *
 * const { user, auth, leave } = useUser()
 */
export declare function useUser(): {
    user: User;
    auth: typeof auth;
    leave: typeof leave;
};
/**
 * Authenticate with a SEA key pair
 * @example
 * import { auth, SEA } from '@gun-vue/composables'
 *
 * async function login() {
 *    const pair = await SEA.pair()
 *    auth(pair)
 * }
 */
export declare function auth(pair: ISEAPair, cb?: (pair: ISEAPair) => void): Promise<void>;
/**
 * Log out the user
 * @example
 * import { leave } from '@gun-vue/composables'
 *
 * leave()
 **/
export declare function leave(): void;
export declare function isMine(soul: string): boolean;
/**
 * Add a field to the User profile
 * @example import { addProfileField } from '@gun-vue/composables'

addProfileField( 'city' )
 */
export declare function addProfileField(title: string): void;
/**
 * Update a profile field
 * @example
 * import { updateProfile } from '@gun-vue/composables'
 *
 * updateProfile( 'city', 'Bangkok' )
 */
export declare function updateProfile(field: string, data: string): void;
/**
 * Check if the object is a proper SEA pair
 */
export declare function isPair(pair: ISEAPair): boolean;
