import { ShardClient } from '../client';
import { BaseCollection } from '../collections/basecollection';
import { BaseSet } from '../collections/baseset';
import { SkuTypes } from '../constants';
import { UrlQuery } from '../utils';
import { BaseStructure, BaseStructureData } from './basestructure';
import { Application } from './application';
/**
 * Store Listing Structure
 * Used for Store Channels ([ChannelGuildStore])
 * @category Structure
 */
export declare class StoreListing extends BaseStructure {
    readonly _keys: BaseSet<string>;
    assets: BaseCollection<string, StoreListingAsset>;
    boxArt?: StoreListingAsset;
    carouselItems?: Array<{
        asset_id?: string;
        youtube_video_id?: string;
    }>;
    description?: string;
    entitlementBranchId?: string;
    headerBackground?: StoreListingAsset;
    headerLogoDarkTheme?: StoreListingAsset;
    heroBackground?: StoreListingAsset;
    heroVideo?: StoreListingAsset;
    id: string;
    previewVideo?: StoreListingAsset;
    sku: Sku;
    summary: string;
    tagline?: string;
    thumbnail: StoreListingAsset;
    constructor(client: ShardClient, data?: BaseStructureData, isClone?: boolean);
    get url(): string;
    mergeValue(key: string, value: any): void;
}
/**
 * Store Listing Asset Structure, used in [StoreListing]
 * @category Structure
 */
export declare class StoreListingAsset extends BaseStructure {
    readonly _uncloneable = true;
    readonly _keys: BaseSet<string>;
    readonly storeListing: StoreListing;
    height: number;
    id: string;
    mimeType: string;
    size: number;
    width: number;
    constructor(storeListing: StoreListing, data: BaseStructureData);
}
/**
 * Sku Structure, used in [Gift] and [StoreListing]
 * @category Structure
 */
export declare class Sku extends BaseStructure {
    readonly _keys: BaseSet<string>;
    accessType: number;
    application?: Application;
    applicationId: string;
    contentRating?: {
        descriptors: Array<number>;
        rating: number;
    };
    contentRatingAgency: number;
    dependentSkuId: null | string;
    features?: Array<number>;
    flags: number;
    genres?: Array<number>;
    id: string;
    legalNotice: string;
    locales?: Array<string>;
    manifestLabels?: Array<any> | null;
    name: string;
    premium?: null;
    price?: {
        amount: number;
        currency: string;
    };
    releaseDate?: null | string;
    showAgeGate: boolean;
    systemRequirements?: {
        [key: string]: {
            recommended: any;
            minimum: any;
        };
    };
    slug: string;
    type: SkuTypes;
    constructor(client: ShardClient, data?: BaseStructureData, isClone?: boolean);
    get url(): string;
    mergeValue(key: string, value: any): void;
}
export declare const keysStoreApplicationAsset: BaseSet<string>;
export declare class StoreApplicationAsset extends BaseStructure {
    readonly _keys: BaseSet<string>;
    applicationId: string;
    filename: string;
    height: number;
    id: string;
    mimeType: string;
    size: number;
    width: string;
    constructor(client: ShardClient, data?: BaseStructureData, isClone?: boolean);
    get url(): string;
    urlFormat(format?: null | string, query?: UrlQuery): string;
    delete(): Promise<any>;
}
