import type { PrettifiedGamePassesForUniverseData, RawGamePassesForUniverseData } from "./gamePasses.types";
import type { Identifier } from "typeforge";
/**
 * Gets information about a game pass.
 * @endpoint GET /v1/game-passes/{gamePassId}/product-info
 *
 * @param gamePassId The ID of the game pass to get information about.
 *
 * @example const { data:gamePassInfo } = await ClassicGamePassesApi.gamePassInfo({ gamePassId: 9260480 })
 * @exampleData "targetId":9260480,"productType":"Game Pass","assetId":0,"productId":979386303,"name":"Donate","description":"null","assetTypeId":0,"creator":{"id":1536374574,"name":"MightyPart Games","creatorType":"Group","creatorTargetId":5850082},"iconImageAssetId":5316458121,"created":"2020-05-01T15:05:21.543Z","updated":"2020-07-09T13:08:21.133Z","priceInRobux":15,"priceInTickets":null,"sales":6,"isNew":false,"isForSale":true,"isPublicDomain":false,"isLimited":false,"isLimitedUnique":false,"remaining":null,"minimumMembershipLevel":0}
 * @exampleRawBody {"TargetId":9260480,"ProductType":"Game Pass","AssetId":0,"ProductId":979386303,"Name":"Donate","Description":"null","AssetTypeId":0,"Creator":{"Id":1536374574,"Name":"MightyPart Games","CreatorType":"Group","CreatorTargetId":5850082},"IconImageAssetId":5316458121,"Created":"2020-05-01T15:05:21.543Z","Updated":"2020-07-09T13:08:21.133Z","PriceInRobux":15,"PriceInTickets":null,"Sales":6,"IsNew":false,"IsForSale":true,"IsPublicDomain":false,"IsLimited":false,"IsLimitedUnique":false,"Remaining":null,"MinimumMembershipLevel":0}
 */
export declare const gamePassInfo: <GamePassId extends Identifier>(this: any, args: {
    gamePassId: GamePassId;
}) => Promise<{
    data: {
        targetId: GamePassId extends any[] ? GamePassId : GamePassId extends Date ? Date : GamePassId extends Record<any, any> ? import("typeforge").ObjectKeysToCamelCase<GamePassId> extends infer T extends Record<any, any> ? { [Key in keyof T]: import("typeforge").ObjectKeysToCamelCase<GamePassId>[Key]; } : never : GamePassId;
        productType: "Game Pass";
        assetId: Identifier;
        productId: Identifier;
        name: string;
        description: string;
        assetTypeId: Identifier;
        creator: {
            id: Identifier;
            name: string;
            creatorType: "User" | "Group";
            creatorTargetId: Identifier;
        };
        iconImageAssetId: Identifier;
        created: Date;
        updated: Date;
        priceInRobux: number;
        priceInTickets: number | null;
        sales: number;
        isNew: boolean;
        isForSale: boolean;
        isPublicDomain: boolean;
        isLimited: boolean;
        isLimitedUnique: boolean;
        remaining: number | null;
        minimumMembershipLevel: number;
    };
    response: {
        fullResponse: unknown;
        url: `https://${string}`;
        method: import("../../../utils/utils.types").RestMethod;
        success: boolean;
        statusCode: number;
        headers: Headers;
        body: {
            TargetId: GamePassId;
            ProductType: "Game Pass";
            AssetId: Identifier;
            ProductId: Identifier;
            Name: string;
            Description: string;
            AssetTypeId: Identifier;
            Creator: {
                Id: Identifier;
                Name: string;
                CreatorType: "User" | "Group";
                CreatorTargetId: Identifier;
            };
            IconImageAssetId: Identifier;
            Created: `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}+${number}${number}${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}Z` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}Z+${number}${number}${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}${number}${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}${number}${number}${number}+${number}${number}${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}${number}${number}${number}Z` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}${number}${number}${number}Z+${number}${number}${number}${number}`;
            Updated: `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}+${number}${number}${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}Z` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}Z+${number}${number}${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}${number}${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}${number}${number}${number}+${number}${number}${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}${number}${number}${number}Z` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}${number}${number}${number}Z+${number}${number}${number}${number}`;
            PriceInRobux: number;
            PriceInTickets: number | null;
            Sales: number;
            IsNew: boolean;
            IsForSale: boolean;
            IsPublicDomain: boolean;
            IsLimited: boolean;
            IsLimitedUnique: boolean;
            Remaining: number | null;
            MinimumMembershipLevel: number;
        };
    };
} & {
    again: () => Promise<{
        data: {
            targetId: GamePassId extends any[] ? GamePassId : GamePassId extends Date ? Date : GamePassId extends Record<any, any> ? import("typeforge").ObjectKeysToCamelCase<GamePassId> extends infer T_1 extends Record<any, any> ? { [Key in keyof T_1]: import("typeforge").ObjectKeysToCamelCase<GamePassId>[Key]; } : never : GamePassId;
            productType: "Game Pass";
            assetId: Identifier;
            productId: Identifier;
            name: string;
            description: string;
            assetTypeId: Identifier;
            creator: {
                id: Identifier;
                name: string;
                creatorType: "User" | "Group";
                creatorTargetId: Identifier;
            };
            iconImageAssetId: Identifier;
            created: Date;
            updated: Date;
            priceInRobux: number;
            priceInTickets: number | null;
            sales: number;
            isNew: boolean;
            isForSale: boolean;
            isPublicDomain: boolean;
            isLimited: boolean;
            isLimitedUnique: boolean;
            remaining: number | null;
            minimumMembershipLevel: number;
        };
        response: {
            fullResponse: unknown;
            url: `https://${string}`;
            method: import("../../../utils/utils.types").RestMethod;
            success: boolean;
            statusCode: number;
            headers: Headers;
            body: {
                TargetId: GamePassId;
                ProductType: "Game Pass";
                AssetId: Identifier;
                ProductId: Identifier;
                Name: string;
                Description: string;
                AssetTypeId: Identifier;
                Creator: {
                    Id: Identifier;
                    Name: string;
                    CreatorType: "User" | "Group";
                    CreatorTargetId: Identifier;
                };
                IconImageAssetId: Identifier;
                Created: `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}+${number}${number}${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}Z` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}Z+${number}${number}${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}${number}${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}${number}${number}${number}+${number}${number}${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}${number}${number}${number}Z` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}${number}${number}${number}Z+${number}${number}${number}${number}`;
                Updated: `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}+${number}${number}${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}Z` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}Z+${number}${number}${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}${number}${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}${number}${number}${number}+${number}${number}${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}${number}${number}${number}Z` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}${number}${number}${number}Z+${number}${number}${number}${number}`;
                PriceInRobux: number;
                PriceInTickets: number | null;
                Sales: number;
                IsNew: boolean;
                IsForSale: boolean;
                IsPublicDomain: boolean;
                IsLimited: boolean;
                IsLimitedUnique: boolean;
                Remaining: number | null;
                MinimumMembershipLevel: number;
            };
        };
    }>;
}>;
/**
 * Gets game passes for a particular universe.
 * @endpoint GET /v1/game-passes/universes/{universeId}/creator
 *
 * @param universeId The ID of the universe to get game passes for.
 * @param limit The number of results per request.
 * @param cursor The paging cursor for the previous or next page.
 *
 * @example const { data:gamePasses } = await ClassicGamePassesApi.gamePassesForUniverse({ universeId: 1685831367, limit: 1 })
 * @exampleData [{"gamePassId":11546631,"name":"Donate Pluss","description":"nulll","isForSale":true,"iconAssetId":18759297002,"placeId":4922741943,"createdTimestamp":"2020-09-01T00:15:17.79Z","updatedTimestamp":"2024-08-02T00:43:10.541Z","priceInformation":{"defaultPriceInRobux":250,"isInActivePriceOptimizationExperiment":false,"isInActiveDiscountCampaign":false,"discountPercentage":0},"productId":1084063256}]
 * @exampleRawBody {"gamePasses":[{"gamePassId":11546631,"name":"Donate Pluss","description":"nulll","isForSale":true,"iconAssetId":18759297002,"placeId":4922741943,"createdTimestamp":"2020-09-01T00:15:17.79Z","updatedTimestamp":"2024-08-02T00:43:10.541Z","priceInformation":{"defaultPriceInRobux":250,"isInActivePriceOptimizationExperiment":false,"isInActiveDiscountCampaign":false,"discountPercentage":0},"productId":1084063256}],"cursor":"id_2zwAAAXRHBJkezgCwMAc"}
 */
export declare const gamePassesForUniverse: import("../../apiGroup/apiGroup.types").CallApiMethod<{
    universeId: Identifier;
    limit?: number | undefined;
    cursor?: string | undefined;
}, {
    method: import("../../../utils/utils.types").RestMethod;
    path: `/${string}`;
    name: string;
    searchParams?: string | Record<string, any> | undefined;
    headers?: Record<string, any> | undefined;
    body?: string | number | Record<string, any> | undefined;
    formData?: FormData | undefined;
    applyFieldMask?: boolean | undefined;
    pathToPoll?: ((rawData: RawGamePassesForUniverseData) => string) | undefined;
    getCursorsFn?: ((rawData: {
        gamePasses: PrettifiedGamePassesForUniverseData;
        cursor: string | null;
    }) => [previous: import("../../apiGroup/apiGroup.types").Cursor, next: import("../../apiGroup/apiGroup.types").Cursor]) | undefined;
    "\uD83D\uDD12__PRIVATE_RAW_DATA"?: {
        gamePasses: PrettifiedGamePassesForUniverseData;
        cursor: string | null;
    } | undefined;
    "\uD83D\uDD12__PRIVATE_FORMATTED_DATA"?: {
        gamePassId: Identifier;
        name: string;
        description: string;
        isForSale: boolean;
        iconAssetId: Identifier;
        placeId: Identifier;
        createdTimestamp: `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}+${number}${number}${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}Z` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}Z+${number}${number}${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}${number}${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}${number}${number}${number}+${number}${number}${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}${number}${number}${number}Z` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}${number}${number}${number}Z+${number}${number}${number}${number}`;
        updatedTimestamp: `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}+${number}${number}${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}Z` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}Z+${number}${number}${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}${number}${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}${number}${number}${number}+${number}${number}${number}${number}` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}${number}${number}${number}Z` | `${number}${number}${number}${number}-${number}${number}-${number}${number}T${number}${number}:${number}${number}:${number}${number}${number}${number}${number}Z+${number}${number}${number}${number}`;
        priceInformation: {
            defaultPriceInRobux: number;
            isInActivePriceOptimizationExperiment: boolean;
            isInActiveDiscountCampaign: boolean;
            discountPercentage: number;
        };
        productId: Identifier;
    }[] | undefined;
} & import("../../apiGroup/apiGroup.types").ApiMethodDataFormatRawData<RawGamePassesForUniverseData, PrettifiedGamePassesForUniverseData>, true>;
/**
 * Updates a game pass.
 * @endpoint POST /v1/game-passes/{gamePassId}/details
 *
 * @param gamePassId The ID of the game pass to update.
 * @param name The new name for the game pass.
 * @param description The new description for the game pass.
 * @param icon The new icon for the game pass.
 * @param price The new price for the game pass.
 * @param isForSale If the game pass should be for sale.
 *
 * @example const { data:success } = await ClassicGamePassesApi.updateGamePass({ gamePassId: 9260480, name: "Donate", icon: "./gamePassIcon.png" })
 * @exampleData true
 * @exampleRawBody ""
 */
export declare const updateGamePass: import("../../apiGroup/apiGroup.types").CallApiMethod<{
    gamePassId: Identifier;
    name?: string | undefined;
    description?: string | undefined;
    icon?: string | File | undefined;
    price?: number | undefined;
    isForSale?: boolean | undefined;
}, {
    method: import("../../../utils/utils.types").RestMethod;
    path: `/${string}`;
    name: string;
    searchParams?: string | Record<string, any> | undefined;
    headers?: Record<string, any> | undefined;
    body?: string | number | Record<string, any> | undefined;
    formData?: FormData | undefined;
    applyFieldMask?: boolean | undefined;
    pathToPoll?: ((rawData: "") => string) | undefined;
    getCursorsFn?: ((rawData: "") => [previous: import("../../apiGroup/apiGroup.types").Cursor, next: import("../../apiGroup/apiGroup.types").Cursor]) | undefined;
    "\uD83D\uDD12__PRIVATE_RAW_DATA"?: "" | undefined;
    "\uD83D\uDD12__PRIVATE_FORMATTED_DATA"?: boolean | undefined;
} & import("../../apiGroup/apiGroup.types").ApiMethodDataFormatRawData<"", boolean>, false>;
/**
 * Creates a game pass.
 * @endpoint POST /v1/game-passes
 *
 * @param universeId The ID of the universe to get a game pass in.
 * @param name The name for the game pass.
 * @param description The description for the game pass.
 * @param icon The icon for the game pass.
 *
 * @example const { data:gamePassId } = await ClassicGamePassesApi.createGamePass({
 *  universeId: 1685831367, name: "My Pass", description: "Lorem Ipsum..."
 * })
 * @exampleData 810182288
 * @exampleRawBody {"gamePassId":810182288}
 */
export declare const createGamePass: import("../../apiGroup/apiGroup.types").CallApiMethod<{
    universeId: Identifier;
    name: string;
    description: string;
    icon?: string | File | undefined;
}, {
    method: import("../../../utils/utils.types").RestMethod;
    path: `/${string}`;
    name: string;
    searchParams?: string | Record<string, any> | undefined;
    headers?: Record<string, any> | undefined;
    body?: string | number | Record<string, any> | undefined;
    formData?: FormData | undefined;
    applyFieldMask?: boolean | undefined;
    pathToPoll?: ((rawData: {
        gamePassId: Identifier;
    }) => string) | undefined;
    getCursorsFn?: ((rawData: {
        gamePassId: Identifier;
    }) => [previous: import("../../apiGroup/apiGroup.types").Cursor, next: import("../../apiGroup/apiGroup.types").Cursor]) | undefined;
    "\uD83D\uDD12__PRIVATE_RAW_DATA"?: {
        gamePassId: Identifier;
    } | undefined;
    "\uD83D\uDD12__PRIVATE_FORMATTED_DATA"?: Identifier | undefined;
} & import("../../apiGroup/apiGroup.types").ApiMethodDataFormatRawData<{
    gamePassId: Identifier;
}, Identifier>, false>;
