import { RequestTypes } from 'detritus-client-rest';
import { ShardClient } from '../client';
import { BaseSet } from '../collections/baseset';
import { InviteTargetTypes } from '../constants';
import { BaseStructure, BaseStructureData } from './basestructure';
import { Channel } from './channel';
import { GuildPartial } from './guild';
import { User } from './user';
/**
 * Instant Invite Structure
 * @category Structure
 */
export declare class Invite extends BaseStructure {
    readonly _keys: BaseSet<string>;
    readonly _keysMerge: BaseSet<string>;
    approximateMemberCount?: number;
    approximatePresenceCount?: number;
    channel: Channel;
    code: string;
    createdAt?: Date;
    expiresAt?: Date;
    guild?: GuildPartial;
    inviter?: User;
    maxAge?: number;
    maxUses?: number;
    revoked?: boolean;
    targetApplication?: any;
    targetType?: InviteTargetTypes;
    targetUser?: User;
    temporary?: boolean;
    uses?: number;
    constructor(client: ShardClient, data?: BaseStructureData, isClone?: boolean);
    get createdAtUnix(): number;
    get expired(): boolean;
    get expiresAtUnix(): number;
    get expiresIn(): number;
    get expiresInUnix(): number;
    get isVanity(): boolean;
    get longUrl(): string;
    get url(): string;
    accept(): Promise<any>;
    delete(options?: RequestTypes.DeleteInvite): Promise<Invite>;
    fetch(options?: RequestTypes.FetchInvite): Promise<Invite>;
    mergeValue(key: string, value: any): void;
}
