import { ShardClient } from '../client';
import { BaseSet } from '../collections/baseset';
import { BaseStructure, BaseStructureData } from './basestructure';
import { ChannelGuildThread } from './channel';
import { User } from './user';
/**
 * Thread Member Structure
 * @category Structure
 */
export declare class ThreadMember extends BaseStructure {
    readonly _keys: BaseSet<string>;
    flags: number;
    id: string;
    joinTimestampUnix: number;
    userId: string;
    constructor(client: ShardClient, data?: BaseStructureData, isClone?: boolean);
    get joinTimestamp(): Date;
    get thread(): ChannelGuildThread | null;
    get user(): User | null;
    add(): Promise<any>;
    remove(): Promise<any>;
    mergeValue(key: string, value: any): void;
}
/**
 * Thread Metadata Structure
 * @category Structure
 */
export declare class ThreadMetadata extends BaseStructure {
    readonly _keys: BaseSet<string>;
    readonly channel: ChannelGuildThread;
    archiveTimestampUnix: number;
    archived: boolean;
    archiverId?: string;
    autoArchiveDuration: number;
    locked?: boolean;
    constructor(channel: ChannelGuildThread, data?: BaseStructureData, isClone?: boolean);
    get archiver(): User | null;
    get archiveTimestamp(): Date;
    mergeValue(key: string, value: any): void;
}
