import { ShardClient } from '../client';
import { BaseSet } from '../collections/baseset';
import { StickerExtensions, StickerFormats } from '../constants';
import { UrlQuery } from '../utils';
import { BaseStructure, BaseStructureData } from './basestructure';
import { Guild } from './guild';
import { Member } from './member';
import { User } from './user';
/**
 * Sticker Item Structure
 * @category Structure
 */
export declare class StickerItem extends BaseStructure {
    readonly _keys: BaseSet<string>;
    formatType: StickerFormats;
    id: string;
    name: string;
    constructor(client: ShardClient, data?: BaseStructureData, isClone?: boolean);
    get assetUrl(): string;
    get createdAt(): Date;
    get createdAtUnix(): number;
    get format(): StickerExtensions;
    assetUrlFormat(format?: null | string, query?: UrlQuery): string;
    toString(): string;
}
/**
 * Sticker Structure
 * @category Structure
 */
export declare class Sticker extends StickerItem {
    readonly _keys: BaseSet<string>;
    asset: string;
    available?: boolean;
    description: string;
    formatType: StickerFormats;
    guildId?: string;
    id: string;
    name: string;
    packId?: string;
    previewAsset: null | string;
    sortValue?: number;
    tags: null | string;
    user?: User;
    constructor(client: ShardClient, data?: BaseStructureData, isClone?: boolean);
    get guild(): Guild | null;
    get member(): Member | null;
    delete(): Promise<any>;
    edit(): Promise<Sticker>;
    fetch(): Promise<Sticker>;
    mergeValue(key: string, value: any): void;
}
