import { ThreadInfo, ThreadID, Multiaddr, ThreadRecord } from '@textile/threads-core';
import { Network } from '@textile/threads-network';
import { PrivateKey, PublicKey } from '@textile/threads-crypto';
export declare function decodeRecord<T = any>(rec: ThreadRecord, info: ThreadInfo): Promise<T | undefined>;
export declare function createThread(network: Network, id?: ThreadID, key?: PrivateKey | PublicKey): Promise<ThreadInfo>;
export declare function threadAddr(hostAddr: Multiaddr, hostID: string, threadID: string): Multiaddr;
export interface CacheOptions {
    duration?: number;
}
export declare function Cache(params?: CacheOptions): (_target: any, _propertyKey: string | symbol, descriptor: PropertyDescriptor) => void;
