import { type Result } from '@synonymdev/result';
export declare function auth(url: string, secretKey: string): Promise<Result<string[]>>;
type Capability = {
    path: string;
    permission: string;
};
type PubkyAuthDetails = {
    relay: string;
    capabilities: Capability[];
    secret: string;
};
export declare function parseAuthUrl(url: string): Promise<Result<PubkyAuthDetails>>;
export declare function publish(recordName: string, recordContent: string, secretKey: string): Promise<Result<string[]>>;
interface ITxt {
    cache_flush: boolean;
    class: string;
    name: string;
    rdata: {
        strings: string[];
        type: string;
    };
    ttl: number;
}
interface IDNSPacket {
    signed_packet: string;
    public_key: string;
    signature: string;
    timestamp: number;
    last_seen: number;
    dns_packet: string;
    records: ITxt[];
}
export declare function resolve(publicKey: string): Promise<Result<IDNSPacket>>;
export declare function signUp(secretKey: string, homeserver: string): Promise<Result<string[]>>;
export declare function signIn(secretKey: string): Promise<Result<string[]>>;
export declare function signOut(secretKey: string): Promise<Result<string[]>>;
export declare function get(url: string): Promise<Result<string[]>>;
export declare function put(url: string, content: Object): Promise<Result<string[]>>;
export declare function publishHttps(recordName: string, target: string, secretKey: string): Promise<Result<string[]>>;
interface IHttpsRecord {
    name: string;
    class: string;
    ttl: number;
    priority: number;
    target: string;
    port?: number;
    alpn?: string[];
}
interface IHttpsResolveResult {
    public_key: string;
    https_records: IHttpsRecord[];
}
export declare function resolveHttps(publicKey: string): Promise<Result<IHttpsResolveResult>>;
export declare function list(url: string): Promise<Result<string[]>>;
interface IPublicKeyInfo {
    public_key: string;
    uri: string;
}
interface IGenerateSecretKey extends IPublicKeyInfo {
    secret_key: string;
}
export declare function generateSecretKey(): Promise<Result<IGenerateSecretKey>>;
export declare function getPublicKeyFromSecretKey(secretKey: string): Promise<Result<IPublicKeyInfo>>;
export declare function createRecoveryFile(secretKey: string, passphrase: string): Promise<Result<string>>;
export declare function decryptRecoveryFile(recoveryFile: string, passphrase: string): Promise<Result<string>>;
export {};
//# sourceMappingURL=index.d.ts.map