export interface MagnetData {
    /**
     * Is the info-hash hex encoded, for a total of 40 characters. For compatability with existing links in the wild, clients should also support the 32 character base32 encoded info-hash.
     *
     * *or*
     *
     * Is the multihash formatted, hex encoded full infohash for torrents in the new metadata format. 'btmh' and 'btih' exact topics may exist in the same magnet if they describe the same hybrid torrent.
     * @link http://www.bittorrent.org/beps/bep_0009.html
     */
    xt?: string | string[];
    /**
     * Parsed xt= parameter see xt
     */
    infoHash?: string;
    infoHashIntArray?: Uint8Array;
    infoHashV2?: string;
    infoHashV2IntArray?: Uint8Array;
    /**
     * The display name that may be used by the client to display while waiting for metadata
     */
    name?: string | string[];
    /**
     * The display name that may be used by the client to display while waiting for metadata
     */
    dn?: string | string[];
    /**
     * Tracker url, if there is one. If there are multiple trackers, multiple tr entries may be included
     */
    tr?: string | string[];
    /**
     * Tracker url, if there is one. If there are multiple trackers, multiple tr entries may be included
     */
    announce?: string[];
    /**
     * An array of where the actual torrent file can be downloaded
     */
    xs?: string | string[];
    /**
     * An array of where the actual torrent file can be downloaded
     */
    as?: string | string[];
    /**
     * An array of where the actual torrent file can be downloaded
     */
    ws?: string | string[];
    /**
     * "keyword topic": a more general search, specifying search terms rather than a particular file
     */
    kt?: string[];
    so?: string[] | number[];
    'x.pe'?: string | string[];
    /**
     * "keyword topic": a more general search, specifying search terms rather than a particular file
     */
    keywords?: string | string[];
    /**
     * File index
     */
    ix?: number | number[];
    /**
     * Size in bytes
     */
    xl?: string;
    /**
     * Combined as= and ws= parameters if they exist
     */
    urlList?: string[];
    peerAddresses?: string[];
    publicKey?: string;
    publicKeyIntArray?: Uint8Array;
}
export declare function magnetDecode(uri: string): MagnetData;
export declare function magnetEncode(data: MagnetData): string;
