@mradex77/google-play-scraper - v1.0.0
    Preparing search index...

    Interface GooglePlayClient

    interface GooglePlayClient {
        age: {
            FIVE_UNDER: "AGE_RANGE1";
            NINE_UP: "AGE_RANGE3";
            SIX_EIGHT: "AGE_RANGE2";
        };
        app: (
            options: {
                appId: string;
                country?: string;
                lang?: string;
                onDegradation?: OnDegradation;
                requestOptions?: {
                    fetchImpl?: (
                        input: string | URL | Request,
                        init?: RequestInit,
                    ) => Promise<Response>;
                    headers?: Record<string, string>;
                    onRequest?: OnRequest;
                    onResponse?: OnResponse;
                    onRetry?: OnRetry;
                    retries?: number;
                    signal?: AbortSignal;
                    timeoutMs?: number;
                };
                throttle?: number;
            },
        ) => Promise<
            {
                adSupported: boolean;
                androidMaxVersion: string;
                androidVersion: string;
                androidVersionText: string;
                appId: string;
                available: boolean;
                categories: { id: string
                | null; name: string }[];
                comments: string[];
                contentRating?: string;
                contentRatingDescription?: string;
                currency?: string;
                description: string;
                descriptionHTML: string;
                developer: string;
                developerAddress?: string;
                developerEmail?: string;
                developerId: string;
                developerInternalID: string;
                developerLegalAddress?: string;
                developerLegalEmail?: string;
                developerLegalName?: string;
                developerLegalPhoneNumber?: string;
                developerWebsite?: string;
                discountEndDate?: number;
                earlyAccessEnabled: boolean;
                free: boolean;
                genre: string;
                genreId: string;
                headerImage?: string;
                histogram: {
                    "1": number;
                    "2": number;
                    "3": number;
                    "4": number;
                    "5": number;
                };
                IAPRange?: string;
                icon: string;
                installs?: string;
                isAvailableInPlayPass: boolean;
                maxInstalls?: number;
                minInstalls?: number;
                offersIAP: boolean;
                originalPrice?: number;
                preregister: boolean;
                previewVideo?: string;
                price: number;
                priceText: string;
                privacyPolicy?: string;
                ratings?: number;
                recentChanges?: string;
                released?: string;
                reviews?: number;
                score?: number;
                scoreText?: string;
                screenshots: string[];
                summary?: string;
                title: string;
                updated: number;
                url: string;
                version: string;
                video?: string;
                videoImage?: string;
            },
        >;
        apps: (
            options: {
                appIds: string[];
                concurrency?: number;
                country?: string;
                lang?: string;
                onDegradation?: OnDegradation;
                requestOptions?: {
                    fetchImpl?: (
                        input: string | URL | Request,
                        init?: RequestInit,
                    ) => Promise<Response>;
                    headers?: Record<string, string>;
                    onRequest?: OnRequest;
                    onResponse?: OnResponse;
                    onRetry?: OnRetry;
                    retries?: number;
                    signal?: AbortSignal;
                    timeoutMs?: number;
                };
                throttle?: number;
            },
        ) => Promise<AppsEntry[]>;
        availability: (
            options: {
                appId: string;
                concurrency?: number;
                countries: string[];
                lang?: string;
                requestOptions?: {
                    fetchImpl?: (
                        input: string | URL | Request,
                        init?: RequestInit,
                    ) => Promise<Response>;
                    headers?: Record<string, string>;
                    onRequest?: OnRequest;
                    onResponse?: OnResponse;
                    onRetry?: OnRetry;
                    retries?: number;
                    signal?: AbortSignal;
                    timeoutMs?: number;
                };
                throttle?: number;
            },
        ) => Promise<
            {
                appId: string;
                countries: Record<
                    string,
                    | { status: "available" }
                    | { status: "unavailable" }
                    | { message: string; status: "error" },
                >;
            },
        >;
        BASE_URL: "https://play.google.com";
        categories: (
            options?: {
                requestOptions?: {
                    fetchImpl?: (
                        input: string | URL | Request,
                        init?: RequestInit,
                    ) => Promise<Response>;
                    headers?: Record<string, string>;
                    onRequest?: OnRequest;
                    onResponse?: OnResponse;
                    onRetry?: OnRetry;
                    retries?: number;
                    signal?: AbortSignal;
                    timeoutMs?: number;
                };
                throttle?: number;
            },
        ) => Promise<string[]>;
        category: {
            ANDROID_WEAR: "ANDROID_WEAR";
            APPLICATION: "APPLICATION";
            ART_AND_DESIGN: "ART_AND_DESIGN";
            AUTO_AND_VEHICLES: "AUTO_AND_VEHICLES";
            BEAUTY: "BEAUTY";
            BOOKS_AND_REFERENCE: "BOOKS_AND_REFERENCE";
            BUSINESS: "BUSINESS";
            COMICS: "COMICS";
            COMMUNICATION: "COMMUNICATION";
            DATING: "DATING";
            EDUCATION: "EDUCATION";
            ENTERTAINMENT: "ENTERTAINMENT";
            EVENTS: "EVENTS";
            FAMILY: "FAMILY";
            FAMILY_ACTION: "FAMILY_ACTION";
            FAMILY_BRAINGAMES: "FAMILY_BRAINGAMES";
            FAMILY_CREATE: "FAMILY_CREATE";
            FAMILY_EDUCATION: "FAMILY_EDUCATION";
            FAMILY_MUSICVIDEO: "FAMILY_MUSICVIDEO";
            FAMILY_PRETEND: "FAMILY_PRETEND";
            FINANCE: "FINANCE";
            FOOD_AND_DRINK: "FOOD_AND_DRINK";
            GAME: "GAME";
            GAME_ACTION: "GAME_ACTION";
            GAME_ADVENTURE: "GAME_ADVENTURE";
            GAME_ARCADE: "GAME_ARCADE";
            GAME_BOARD: "GAME_BOARD";
            GAME_CARD: "GAME_CARD";
            GAME_CASINO: "GAME_CASINO";
            GAME_CASUAL: "GAME_CASUAL";
            GAME_EDUCATIONAL: "GAME_EDUCATIONAL";
            GAME_MUSIC: "GAME_MUSIC";
            GAME_PUZZLE: "GAME_PUZZLE";
            GAME_RACING: "GAME_RACING";
            GAME_ROLE_PLAYING: "GAME_ROLE_PLAYING";
            GAME_SIMULATION: "GAME_SIMULATION";
            GAME_SPORTS: "GAME_SPORTS";
            GAME_STRATEGY: "GAME_STRATEGY";
            GAME_TRIVIA: "GAME_TRIVIA";
            GAME_WORD: "GAME_WORD";
            HEALTH_AND_FITNESS: "HEALTH_AND_FITNESS";
            HOUSE_AND_HOME: "HOUSE_AND_HOME";
            LIBRARIES_AND_DEMO: "LIBRARIES_AND_DEMO";
            LIFESTYLE: "LIFESTYLE";
            MAPS_AND_NAVIGATION: "MAPS_AND_NAVIGATION";
            MEDICAL: "MEDICAL";
            MUSIC_AND_AUDIO: "MUSIC_AND_AUDIO";
            NEWS_AND_MAGAZINES: "NEWS_AND_MAGAZINES";
            PARENTING: "PARENTING";
            PERSONALIZATION: "PERSONALIZATION";
            PHOTOGRAPHY: "PHOTOGRAPHY";
            PRODUCTIVITY: "PRODUCTIVITY";
            SHOPPING: "SHOPPING";
            SOCIAL: "SOCIAL";
            SPORTS: "SPORTS";
            TOOLS: "TOOLS";
            TRAVEL_AND_LOCAL: "TRAVEL_AND_LOCAL";
            VIDEO_PLAYERS: "VIDEO_PLAYERS";
            WATCH_FACE: "WATCH_FACE";
            WEATHER: "WEATHER";
        };
        clusters: { new: "new"; top: "top" };
        collection: {
            GROSSING: "GROSSING";
            TOP_FREE: "TOP_FREE";
            TOP_PAID: "TOP_PAID";
        };
        dataSafety: (
            options: {
                appId: string;
                country?: string;
                lang?: string;
                onDegradation?: OnDegradation;
                requestOptions?: {
                    fetchImpl?: (
                        input: string | URL | Request,
                        init?: RequestInit,
                    ) => Promise<Response>;
                    headers?: Record<string, string>;
                    onRequest?: OnRequest;
                    onResponse?: OnResponse;
                    onRetry?: OnRetry;
                    retries?: number;
                    signal?: AbortSignal;
                    timeoutMs?: number;
                };
                throttle?: number;
            },
        ) => Promise<
            {
                collectedData: {
                    data: string;
                    optional: boolean;
                    purpose?: string;
                    type: string;
                }[];
                privacyPolicyUrl?: string;
                securityPractices: { description?: string; practice: string }[];
                sharedData: {
                    data: string;
                    optional: boolean;
                    purpose?: string;
                    type: string;
                }[];
            },
        >;
        developer: (
            options: {
                country?: string;
                devId: string;
                fullDetail?: boolean;
                lang?: string;
                num?: number;
                onDegradation?: OnDegradation;
                requestOptions?: {
                    fetchImpl?: (
                        input: string | URL | Request,
                        init?: RequestInit,
                    ) => Promise<Response>;
                    headers?: Record<string, string>;
                    onRequest?: OnRequest;
                    onResponse?: OnResponse;
                    onRetry?: OnRetry;
                    retries?: number;
                    signal?: AbortSignal;
                    timeoutMs?: number;
                };
                throttle?: number;
            },
        ) => Promise<
            | {
                appId: string;
                currency?: string;
                developer: string;
                developerId?: string;
                free: boolean;
                icon: string;
                price: number;
                score?: number;
                scoreText?: string;
                summary?: string;
                title: string;
                url: string;
            }[]
            | {
                adSupported: boolean;
                androidMaxVersion: string;
                androidVersion: string;
                androidVersionText: string;
                appId: string;
                available: boolean;
                categories: { id: string
                | null; name: string }[];
                comments: string[];
                contentRating?: string;
                contentRatingDescription?: string;
                currency?: string;
                description: string;
                descriptionHTML: string;
                developer: string;
                developerAddress?: string;
                developerEmail?: string;
                developerId: string;
                developerInternalID: string;
                developerLegalAddress?: string;
                developerLegalEmail?: string;
                developerLegalName?: string;
                developerLegalPhoneNumber?: string;
                developerWebsite?: string;
                discountEndDate?: number;
                earlyAccessEnabled: boolean;
                free: boolean;
                genre: string;
                genreId: string;
                headerImage?: string;
                histogram: {
                    "1": number;
                    "2": number;
                    "3": number;
                    "4": number;
                    "5": number;
                };
                IAPRange?: string;
                icon: string;
                installs?: string;
                isAvailableInPlayPass: boolean;
                maxInstalls?: number;
                minInstalls?: number;
                offersIAP: boolean;
                originalPrice?: number;
                preregister: boolean;
                previewVideo?: string;
                price: number;
                priceText: string;
                privacyPolicy?: string;
                ratings?: number;
                recentChanges?: string;
                released?: string;
                reviews?: number;
                score?: number;
                scoreText?: string;
                screenshots: string[];
                summary?: string;
                title: string;
                updated: number;
                url: string;
                version: string;
                video?: string;
                videoImage?: string;
            }[],
        >;
        list: (
            options: {
                age?: "AGE_RANGE1" | "AGE_RANGE2" | "AGE_RANGE3";
                category?:
                    | "APPLICATION"
                    | "ANDROID_WEAR"
                    | "ART_AND_DESIGN"
                    | "AUTO_AND_VEHICLES"
                    | "BEAUTY"
                    | "BOOKS_AND_REFERENCE"
                    | "BUSINESS"
                    | "COMICS"
                    | "COMMUNICATION"
                    | "DATING"
                    | "EDUCATION"
                    | "ENTERTAINMENT"
                    | "EVENTS"
                    | "FINANCE"
                    | "FOOD_AND_DRINK"
                    | "HEALTH_AND_FITNESS"
                    | "HOUSE_AND_HOME"
                    | "LIBRARIES_AND_DEMO"
                    | "LIFESTYLE"
                    | "MAPS_AND_NAVIGATION"
                    | "MEDICAL"
                    | "MUSIC_AND_AUDIO"
                    | "NEWS_AND_MAGAZINES"
                    | "PARENTING"
                    | "PERSONALIZATION"
                    | "PHOTOGRAPHY"
                    | "PRODUCTIVITY"
                    | "SHOPPING"
                    | "SOCIAL"
                    | "SPORTS"
                    | "TOOLS"
                    | "TRAVEL_AND_LOCAL"
                    | "VIDEO_PLAYERS"
                    | "WATCH_FACE"
                    | "WEATHER"
                    | "GAME"
                    | "GAME_ACTION"
                    | "GAME_ADVENTURE"
                    | "GAME_ARCADE"
                    | "GAME_BOARD"
                    | "GAME_CARD"
                    | "GAME_CASINO"
                    | "GAME_CASUAL"
                    | "GAME_EDUCATIONAL"
                    | "GAME_MUSIC"
                    | "GAME_PUZZLE"
                    | "GAME_RACING"
                    | "GAME_ROLE_PLAYING"
                    | "GAME_SIMULATION"
                    | "GAME_SPORTS"
                    | "GAME_STRATEGY"
                    | "GAME_TRIVIA"
                    | "GAME_WORD"
                    | "FAMILY"
                    | "FAMILY_ACTION"
                    | "FAMILY_BRAINGAMES"
                    | "FAMILY_CREATE"
                    | "FAMILY_EDUCATION"
                    | "FAMILY_MUSICVIDEO"
                    | "FAMILY_PRETEND";
                collection?: "TOP_FREE"
                | "TOP_PAID"
                | "GROSSING";
                country?: string;
                fullDetail?: boolean;
                lang?: string;
                num?: number;
                onDegradation?: OnDegradation;
                requestOptions?: {
                    fetchImpl?: (
                        input: string | URL | Request,
                        init?: RequestInit,
                    ) => Promise<Response>;
                    headers?: Record<string, string>;
                    onRequest?: OnRequest;
                    onResponse?: OnResponse;
                    onRetry?: OnRetry;
                    retries?: number;
                    signal?: AbortSignal;
                    timeoutMs?: number;
                };
                throttle?: number;
            },
        ) => Promise<
            | {
                appId: string;
                currency?: string;
                developer: string;
                developerId?: string;
                free: boolean;
                icon: string;
                price: number;
                score?: number;
                scoreText?: string;
                summary?: string;
                title: string;
                url: string;
            }[]
            | {
                adSupported: boolean;
                androidMaxVersion: string;
                androidVersion: string;
                androidVersionText: string;
                appId: string;
                available: boolean;
                categories: { id: string
                | null; name: string }[];
                comments: string[];
                contentRating?: string;
                contentRatingDescription?: string;
                currency?: string;
                description: string;
                descriptionHTML: string;
                developer: string;
                developerAddress?: string;
                developerEmail?: string;
                developerId: string;
                developerInternalID: string;
                developerLegalAddress?: string;
                developerLegalEmail?: string;
                developerLegalName?: string;
                developerLegalPhoneNumber?: string;
                developerWebsite?: string;
                discountEndDate?: number;
                earlyAccessEnabled: boolean;
                free: boolean;
                genre: string;
                genreId: string;
                headerImage?: string;
                histogram: {
                    "1": number;
                    "2": number;
                    "3": number;
                    "4": number;
                    "5": number;
                };
                IAPRange?: string;
                icon: string;
                installs?: string;
                isAvailableInPlayPass: boolean;
                maxInstalls?: number;
                minInstalls?: number;
                offersIAP: boolean;
                originalPrice?: number;
                preregister: boolean;
                previewVideo?: string;
                price: number;
                priceText: string;
                privacyPolicy?: string;
                ratings?: number;
                recentChanges?: string;
                released?: string;
                reviews?: number;
                score?: number;
                scoreText?: string;
                screenshots: string[];
                summary?: string;
                title: string;
                updated: number;
                url: string;
                version: string;
                video?: string;
                videoImage?: string;
            }[],
        >;
        permission: { COMMON: 0; OTHER: 1 };
        permissions: (
            options: {
                appId: string;
                country?: string;
                lang?: string;
                onDegradation?: OnDegradation;
                requestOptions?: {
                    fetchImpl?: (
                        input: string | URL | Request,
                        init?: RequestInit,
                    ) => Promise<Response>;
                    headers?: Record<string, string>;
                    onRequest?: OnRequest;
                    onResponse?: OnResponse;
                    onRetry?: OnRetry;
                    retries?: number;
                    signal?: AbortSignal;
                    timeoutMs?: number;
                };
                short?: boolean;
                throttle?: number;
            },
        ) => Promise<string[] | { permission: string; type: 0 | 1 }[]>;
        reviews: (
            options: {
                appId: string;
                country?: string;
                lang?: string;
                nextPaginationToken?: string;
                num?: number;
                onDegradation?: OnDegradation;
                paginate?: boolean;
                requestOptions?: {
                    fetchImpl?: (
                        input: string | URL | Request,
                        init?: RequestInit,
                    ) => Promise<Response>;
                    headers?: Record<string, string>;
                    onRequest?: OnRequest;
                    onResponse?: OnResponse;
                    onRetry?: OnRetry;
                    retries?: number;
                    signal?: AbortSignal;
                    timeoutMs?: number;
                };
                sort?: 2
                | 3
                | 1;
                throttle?: number;
            },
        ) => Promise<
            {
                data: {
                    criterias: { criteria: string; rating: number
                    | null }[];
                    date: string;
                    id: string;
                    replyDate?: string;
                    replyText?: string;
                    score: number;
                    text?: string;
                    thumbsUp?: number;
                    title?: string | null;
                    userImage?: string;
                    userName: string;
                    version?: string;
                }[];
                nextPaginationToken: string
                | null;
            },
        >;
        search: (
            options: {
                country?: string;
                fullDetail?: boolean;
                lang?: string;
                num?: number;
                onDegradation?: OnDegradation;
                price?: "free" | "all" | "paid";
                requestOptions?: {
                    fetchImpl?: (
                        input: string | URL | Request,
                        init?: RequestInit,
                    ) => Promise<Response>;
                    headers?: Record<string, string>;
                    onRequest?: OnRequest;
                    onResponse?: OnResponse;
                    onRetry?: OnRetry;
                    retries?: number;
                    signal?: AbortSignal;
                    timeoutMs?: number;
                };
                term: string;
                throttle?: number;
            },
        ) => Promise<
            | {
                appId: string;
                currency?: string;
                developer: string;
                developerId?: string;
                free: boolean;
                icon: string;
                price: number;
                score?: number;
                scoreText?: string;
                summary?: string;
                title: string;
                url: string;
            }[]
            | {
                adSupported: boolean;
                androidMaxVersion: string;
                androidVersion: string;
                androidVersionText: string;
                appId: string;
                available: boolean;
                categories: { id: string
                | null; name: string }[];
                comments: string[];
                contentRating?: string;
                contentRatingDescription?: string;
                currency?: string;
                description: string;
                descriptionHTML: string;
                developer: string;
                developerAddress?: string;
                developerEmail?: string;
                developerId: string;
                developerInternalID: string;
                developerLegalAddress?: string;
                developerLegalEmail?: string;
                developerLegalName?: string;
                developerLegalPhoneNumber?: string;
                developerWebsite?: string;
                discountEndDate?: number;
                earlyAccessEnabled: boolean;
                free: boolean;
                genre: string;
                genreId: string;
                headerImage?: string;
                histogram: {
                    "1": number;
                    "2": number;
                    "3": number;
                    "4": number;
                    "5": number;
                };
                IAPRange?: string;
                icon: string;
                installs?: string;
                isAvailableInPlayPass: boolean;
                maxInstalls?: number;
                minInstalls?: number;
                offersIAP: boolean;
                originalPrice?: number;
                preregister: boolean;
                previewVideo?: string;
                price: number;
                priceText: string;
                privacyPolicy?: string;
                ratings?: number;
                recentChanges?: string;
                released?: string;
                reviews?: number;
                score?: number;
                scoreText?: string;
                screenshots: string[];
                summary?: string;
                title: string;
                updated: number;
                url: string;
                version: string;
                video?: string;
                videoImage?: string;
            }[],
        >;
        similar: (
            options: {
                appId: string;
                country?: string;
                fullDetail?: boolean;
                lang?: string;
                onDegradation?: OnDegradation;
                requestOptions?: {
                    fetchImpl?: (
                        input: string | URL | Request,
                        init?: RequestInit,
                    ) => Promise<Response>;
                    headers?: Record<string, string>;
                    onRequest?: OnRequest;
                    onResponse?: OnResponse;
                    onRetry?: OnRetry;
                    retries?: number;
                    signal?: AbortSignal;
                    timeoutMs?: number;
                };
                throttle?: number;
            },
        ) => Promise<
            | {
                appId: string;
                currency?: string;
                developer: string;
                developerId?: string;
                free: boolean;
                icon: string;
                price: number;
                score?: number;
                scoreText?: string;
                summary?: string;
                title: string;
                url: string;
            }[]
            | {
                adSupported: boolean;
                androidMaxVersion: string;
                androidVersion: string;
                androidVersionText: string;
                appId: string;
                available: boolean;
                categories: { id: string
                | null; name: string }[];
                comments: string[];
                contentRating?: string;
                contentRatingDescription?: string;
                currency?: string;
                description: string;
                descriptionHTML: string;
                developer: string;
                developerAddress?: string;
                developerEmail?: string;
                developerId: string;
                developerInternalID: string;
                developerLegalAddress?: string;
                developerLegalEmail?: string;
                developerLegalName?: string;
                developerLegalPhoneNumber?: string;
                developerWebsite?: string;
                discountEndDate?: number;
                earlyAccessEnabled: boolean;
                free: boolean;
                genre: string;
                genreId: string;
                headerImage?: string;
                histogram: {
                    "1": number;
                    "2": number;
                    "3": number;
                    "4": number;
                    "5": number;
                };
                IAPRange?: string;
                icon: string;
                installs?: string;
                isAvailableInPlayPass: boolean;
                maxInstalls?: number;
                minInstalls?: number;
                offersIAP: boolean;
                originalPrice?: number;
                preregister: boolean;
                previewVideo?: string;
                price: number;
                priceText: string;
                privacyPolicy?: string;
                ratings?: number;
                recentChanges?: string;
                released?: string;
                reviews?: number;
                score?: number;
                scoreText?: string;
                screenshots: string[];
                summary?: string;
                title: string;
                updated: number;
                url: string;
                version: string;
                video?: string;
                videoImage?: string;
            }[],
        >;
        sort: { HELPFULNESS: 1; NEWEST: 2; RATING: 3 };
        suggest: (
            options: {
                country?: string;
                lang?: string;
                onDegradation?: OnDegradation;
                requestOptions?: {
                    fetchImpl?: (
                        input: string | URL | Request,
                        init?: RequestInit,
                    ) => Promise<Response>;
                    headers?: Record<string, string>;
                    onRequest?: OnRequest;
                    onResponse?: OnResponse;
                    onRetry?: OnRetry;
                    retries?: number;
                    signal?: AbortSignal;
                    timeoutMs?: number;
                };
                term: string;
                throttle?: number;
            },
        ) => Promise<string[]>;
    }
    Index
    age: {
        FIVE_UNDER: "AGE_RANGE1";
        NINE_UP: "AGE_RANGE3";
        SIX_EIGHT: "AGE_RANGE2";
    }
    app: (
        options: {
            appId: string;
            country?: string;
            lang?: string;
            onDegradation?: OnDegradation;
            requestOptions?: {
                fetchImpl?: (
                    input: string | URL | Request,
                    init?: RequestInit,
                ) => Promise<Response>;
                headers?: Record<string, string>;
                onRequest?: OnRequest;
                onResponse?: OnResponse;
                onRetry?: OnRetry;
                retries?: number;
                signal?: AbortSignal;
                timeoutMs?: number;
            };
            throttle?: number;
        },
    ) => Promise<
        {
            adSupported: boolean;
            androidMaxVersion: string;
            androidVersion: string;
            androidVersionText: string;
            appId: string;
            available: boolean;
            categories: { id: string
            | null; name: string }[];
            comments: string[];
            contentRating?: string;
            contentRatingDescription?: string;
            currency?: string;
            description: string;
            descriptionHTML: string;
            developer: string;
            developerAddress?: string;
            developerEmail?: string;
            developerId: string;
            developerInternalID: string;
            developerLegalAddress?: string;
            developerLegalEmail?: string;
            developerLegalName?: string;
            developerLegalPhoneNumber?: string;
            developerWebsite?: string;
            discountEndDate?: number;
            earlyAccessEnabled: boolean;
            free: boolean;
            genre: string;
            genreId: string;
            headerImage?: string;
            histogram: {
                "1": number;
                "2": number;
                "3": number;
                "4": number;
                "5": number;
            };
            IAPRange?: string;
            icon: string;
            installs?: string;
            isAvailableInPlayPass: boolean;
            maxInstalls?: number;
            minInstalls?: number;
            offersIAP: boolean;
            originalPrice?: number;
            preregister: boolean;
            previewVideo?: string;
            price: number;
            priceText: string;
            privacyPolicy?: string;
            ratings?: number;
            recentChanges?: string;
            released?: string;
            reviews?: number;
            score?: number;
            scoreText?: string;
            screenshots: string[];
            summary?: string;
            title: string;
            updated: number;
            url: string;
            version: string;
            video?: string;
            videoImage?: string;
        },
    >
    apps: (
        options: {
            appIds: string[];
            concurrency?: number;
            country?: string;
            lang?: string;
            onDegradation?: OnDegradation;
            requestOptions?: {
                fetchImpl?: (
                    input: string | URL | Request,
                    init?: RequestInit,
                ) => Promise<Response>;
                headers?: Record<string, string>;
                onRequest?: OnRequest;
                onResponse?: OnResponse;
                onRetry?: OnRetry;
                retries?: number;
                signal?: AbortSignal;
                timeoutMs?: number;
            };
            throttle?: number;
        },
    ) => Promise<AppsEntry[]>
    availability: (
        options: {
            appId: string;
            concurrency?: number;
            countries: string[];
            lang?: string;
            requestOptions?: {
                fetchImpl?: (
                    input: string | URL | Request,
                    init?: RequestInit,
                ) => Promise<Response>;
                headers?: Record<string, string>;
                onRequest?: OnRequest;
                onResponse?: OnResponse;
                onRetry?: OnRetry;
                retries?: number;
                signal?: AbortSignal;
                timeoutMs?: number;
            };
            throttle?: number;
        },
    ) => Promise<
        {
            appId: string;
            countries: Record<
                string,
                | { status: "available" }
                | { status: "unavailable" }
                | { message: string; status: "error" },
            >;
        },
    >
    BASE_URL: "https://play.google.com"
    categories: (
        options?: {
            requestOptions?: {
                fetchImpl?: (
                    input: string | URL | Request,
                    init?: RequestInit,
                ) => Promise<Response>;
                headers?: Record<string, string>;
                onRequest?: OnRequest;
                onResponse?: OnResponse;
                onRetry?: OnRetry;
                retries?: number;
                signal?: AbortSignal;
                timeoutMs?: number;
            };
            throttle?: number;
        },
    ) => Promise<string[]>
    category: {
        ANDROID_WEAR: "ANDROID_WEAR";
        APPLICATION: "APPLICATION";
        ART_AND_DESIGN: "ART_AND_DESIGN";
        AUTO_AND_VEHICLES: "AUTO_AND_VEHICLES";
        BEAUTY: "BEAUTY";
        BOOKS_AND_REFERENCE: "BOOKS_AND_REFERENCE";
        BUSINESS: "BUSINESS";
        COMICS: "COMICS";
        COMMUNICATION: "COMMUNICATION";
        DATING: "DATING";
        EDUCATION: "EDUCATION";
        ENTERTAINMENT: "ENTERTAINMENT";
        EVENTS: "EVENTS";
        FAMILY: "FAMILY";
        FAMILY_ACTION: "FAMILY_ACTION";
        FAMILY_BRAINGAMES: "FAMILY_BRAINGAMES";
        FAMILY_CREATE: "FAMILY_CREATE";
        FAMILY_EDUCATION: "FAMILY_EDUCATION";
        FAMILY_MUSICVIDEO: "FAMILY_MUSICVIDEO";
        FAMILY_PRETEND: "FAMILY_PRETEND";
        FINANCE: "FINANCE";
        FOOD_AND_DRINK: "FOOD_AND_DRINK";
        GAME: "GAME";
        GAME_ACTION: "GAME_ACTION";
        GAME_ADVENTURE: "GAME_ADVENTURE";
        GAME_ARCADE: "GAME_ARCADE";
        GAME_BOARD: "GAME_BOARD";
        GAME_CARD: "GAME_CARD";
        GAME_CASINO: "GAME_CASINO";
        GAME_CASUAL: "GAME_CASUAL";
        GAME_EDUCATIONAL: "GAME_EDUCATIONAL";
        GAME_MUSIC: "GAME_MUSIC";
        GAME_PUZZLE: "GAME_PUZZLE";
        GAME_RACING: "GAME_RACING";
        GAME_ROLE_PLAYING: "GAME_ROLE_PLAYING";
        GAME_SIMULATION: "GAME_SIMULATION";
        GAME_SPORTS: "GAME_SPORTS";
        GAME_STRATEGY: "GAME_STRATEGY";
        GAME_TRIVIA: "GAME_TRIVIA";
        GAME_WORD: "GAME_WORD";
        HEALTH_AND_FITNESS: "HEALTH_AND_FITNESS";
        HOUSE_AND_HOME: "HOUSE_AND_HOME";
        LIBRARIES_AND_DEMO: "LIBRARIES_AND_DEMO";
        LIFESTYLE: "LIFESTYLE";
        MAPS_AND_NAVIGATION: "MAPS_AND_NAVIGATION";
        MEDICAL: "MEDICAL";
        MUSIC_AND_AUDIO: "MUSIC_AND_AUDIO";
        NEWS_AND_MAGAZINES: "NEWS_AND_MAGAZINES";
        PARENTING: "PARENTING";
        PERSONALIZATION: "PERSONALIZATION";
        PHOTOGRAPHY: "PHOTOGRAPHY";
        PRODUCTIVITY: "PRODUCTIVITY";
        SHOPPING: "SHOPPING";
        SOCIAL: "SOCIAL";
        SPORTS: "SPORTS";
        TOOLS: "TOOLS";
        TRAVEL_AND_LOCAL: "TRAVEL_AND_LOCAL";
        VIDEO_PLAYERS: "VIDEO_PLAYERS";
        WATCH_FACE: "WATCH_FACE";
        WEATHER: "WEATHER";
    }
    clusters: { new: "new"; top: "top" }
    collection: { GROSSING: "GROSSING"; TOP_FREE: "TOP_FREE"; TOP_PAID: "TOP_PAID" }
    dataSafety: (
        options: {
            appId: string;
            country?: string;
            lang?: string;
            onDegradation?: OnDegradation;
            requestOptions?: {
                fetchImpl?: (
                    input: string | URL | Request,
                    init?: RequestInit,
                ) => Promise<Response>;
                headers?: Record<string, string>;
                onRequest?: OnRequest;
                onResponse?: OnResponse;
                onRetry?: OnRetry;
                retries?: number;
                signal?: AbortSignal;
                timeoutMs?: number;
            };
            throttle?: number;
        },
    ) => Promise<
        {
            collectedData: {
                data: string;
                optional: boolean;
                purpose?: string;
                type: string;
            }[];
            privacyPolicyUrl?: string;
            securityPractices: { description?: string; practice: string }[];
            sharedData: {
                data: string;
                optional: boolean;
                purpose?: string;
                type: string;
            }[];
        },
    >
    developer: (
        options: {
            country?: string;
            devId: string;
            fullDetail?: boolean;
            lang?: string;
            num?: number;
            onDegradation?: OnDegradation;
            requestOptions?: {
                fetchImpl?: (
                    input: string | URL | Request,
                    init?: RequestInit,
                ) => Promise<Response>;
                headers?: Record<string, string>;
                onRequest?: OnRequest;
                onResponse?: OnResponse;
                onRetry?: OnRetry;
                retries?: number;
                signal?: AbortSignal;
                timeoutMs?: number;
            };
            throttle?: number;
        },
    ) => Promise<
        | {
            appId: string;
            currency?: string;
            developer: string;
            developerId?: string;
            free: boolean;
            icon: string;
            price: number;
            score?: number;
            scoreText?: string;
            summary?: string;
            title: string;
            url: string;
        }[]
        | {
            adSupported: boolean;
            androidMaxVersion: string;
            androidVersion: string;
            androidVersionText: string;
            appId: string;
            available: boolean;
            categories: { id: string
            | null; name: string }[];
            comments: string[];
            contentRating?: string;
            contentRatingDescription?: string;
            currency?: string;
            description: string;
            descriptionHTML: string;
            developer: string;
            developerAddress?: string;
            developerEmail?: string;
            developerId: string;
            developerInternalID: string;
            developerLegalAddress?: string;
            developerLegalEmail?: string;
            developerLegalName?: string;
            developerLegalPhoneNumber?: string;
            developerWebsite?: string;
            discountEndDate?: number;
            earlyAccessEnabled: boolean;
            free: boolean;
            genre: string;
            genreId: string;
            headerImage?: string;
            histogram: {
                "1": number;
                "2": number;
                "3": number;
                "4": number;
                "5": number;
            };
            IAPRange?: string;
            icon: string;
            installs?: string;
            isAvailableInPlayPass: boolean;
            maxInstalls?: number;
            minInstalls?: number;
            offersIAP: boolean;
            originalPrice?: number;
            preregister: boolean;
            previewVideo?: string;
            price: number;
            priceText: string;
            privacyPolicy?: string;
            ratings?: number;
            recentChanges?: string;
            released?: string;
            reviews?: number;
            score?: number;
            scoreText?: string;
            screenshots: string[];
            summary?: string;
            title: string;
            updated: number;
            url: string;
            version: string;
            video?: string;
            videoImage?: string;
        }[],
    >
    list: (
        options: {
            age?: "AGE_RANGE1" | "AGE_RANGE2" | "AGE_RANGE3";
            category?:
                | "APPLICATION"
                | "ANDROID_WEAR"
                | "ART_AND_DESIGN"
                | "AUTO_AND_VEHICLES"
                | "BEAUTY"
                | "BOOKS_AND_REFERENCE"
                | "BUSINESS"
                | "COMICS"
                | "COMMUNICATION"
                | "DATING"
                | "EDUCATION"
                | "ENTERTAINMENT"
                | "EVENTS"
                | "FINANCE"
                | "FOOD_AND_DRINK"
                | "HEALTH_AND_FITNESS"
                | "HOUSE_AND_HOME"
                | "LIBRARIES_AND_DEMO"
                | "LIFESTYLE"
                | "MAPS_AND_NAVIGATION"
                | "MEDICAL"
                | "MUSIC_AND_AUDIO"
                | "NEWS_AND_MAGAZINES"
                | "PARENTING"
                | "PERSONALIZATION"
                | "PHOTOGRAPHY"
                | "PRODUCTIVITY"
                | "SHOPPING"
                | "SOCIAL"
                | "SPORTS"
                | "TOOLS"
                | "TRAVEL_AND_LOCAL"
                | "VIDEO_PLAYERS"
                | "WATCH_FACE"
                | "WEATHER"
                | "GAME"
                | "GAME_ACTION"
                | "GAME_ADVENTURE"
                | "GAME_ARCADE"
                | "GAME_BOARD"
                | "GAME_CARD"
                | "GAME_CASINO"
                | "GAME_CASUAL"
                | "GAME_EDUCATIONAL"
                | "GAME_MUSIC"
                | "GAME_PUZZLE"
                | "GAME_RACING"
                | "GAME_ROLE_PLAYING"
                | "GAME_SIMULATION"
                | "GAME_SPORTS"
                | "GAME_STRATEGY"
                | "GAME_TRIVIA"
                | "GAME_WORD"
                | "FAMILY"
                | "FAMILY_ACTION"
                | "FAMILY_BRAINGAMES"
                | "FAMILY_CREATE"
                | "FAMILY_EDUCATION"
                | "FAMILY_MUSICVIDEO"
                | "FAMILY_PRETEND";
            collection?: "TOP_FREE"
            | "TOP_PAID"
            | "GROSSING";
            country?: string;
            fullDetail?: boolean;
            lang?: string;
            num?: number;
            onDegradation?: OnDegradation;
            requestOptions?: {
                fetchImpl?: (
                    input: string | URL | Request,
                    init?: RequestInit,
                ) => Promise<Response>;
                headers?: Record<string, string>;
                onRequest?: OnRequest;
                onResponse?: OnResponse;
                onRetry?: OnRetry;
                retries?: number;
                signal?: AbortSignal;
                timeoutMs?: number;
            };
            throttle?: number;
        },
    ) => Promise<
        | {
            appId: string;
            currency?: string;
            developer: string;
            developerId?: string;
            free: boolean;
            icon: string;
            price: number;
            score?: number;
            scoreText?: string;
            summary?: string;
            title: string;
            url: string;
        }[]
        | {
            adSupported: boolean;
            androidMaxVersion: string;
            androidVersion: string;
            androidVersionText: string;
            appId: string;
            available: boolean;
            categories: { id: string
            | null; name: string }[];
            comments: string[];
            contentRating?: string;
            contentRatingDescription?: string;
            currency?: string;
            description: string;
            descriptionHTML: string;
            developer: string;
            developerAddress?: string;
            developerEmail?: string;
            developerId: string;
            developerInternalID: string;
            developerLegalAddress?: string;
            developerLegalEmail?: string;
            developerLegalName?: string;
            developerLegalPhoneNumber?: string;
            developerWebsite?: string;
            discountEndDate?: number;
            earlyAccessEnabled: boolean;
            free: boolean;
            genre: string;
            genreId: string;
            headerImage?: string;
            histogram: {
                "1": number;
                "2": number;
                "3": number;
                "4": number;
                "5": number;
            };
            IAPRange?: string;
            icon: string;
            installs?: string;
            isAvailableInPlayPass: boolean;
            maxInstalls?: number;
            minInstalls?: number;
            offersIAP: boolean;
            originalPrice?: number;
            preregister: boolean;
            previewVideo?: string;
            price: number;
            priceText: string;
            privacyPolicy?: string;
            ratings?: number;
            recentChanges?: string;
            released?: string;
            reviews?: number;
            score?: number;
            scoreText?: string;
            screenshots: string[];
            summary?: string;
            title: string;
            updated: number;
            url: string;
            version: string;
            video?: string;
            videoImage?: string;
        }[],
    >
    permission: { COMMON: 0; OTHER: 1 }
    permissions: (
        options: {
            appId: string;
            country?: string;
            lang?: string;
            onDegradation?: OnDegradation;
            requestOptions?: {
                fetchImpl?: (
                    input: string | URL | Request,
                    init?: RequestInit,
                ) => Promise<Response>;
                headers?: Record<string, string>;
                onRequest?: OnRequest;
                onResponse?: OnResponse;
                onRetry?: OnRetry;
                retries?: number;
                signal?: AbortSignal;
                timeoutMs?: number;
            };
            short?: boolean;
            throttle?: number;
        },
    ) => Promise<string[] | { permission: string; type: 0 | 1 }[]>
    reviews: (
        options: {
            appId: string;
            country?: string;
            lang?: string;
            nextPaginationToken?: string;
            num?: number;
            onDegradation?: OnDegradation;
            paginate?: boolean;
            requestOptions?: {
                fetchImpl?: (
                    input: string | URL | Request,
                    init?: RequestInit,
                ) => Promise<Response>;
                headers?: Record<string, string>;
                onRequest?: OnRequest;
                onResponse?: OnResponse;
                onRetry?: OnRetry;
                retries?: number;
                signal?: AbortSignal;
                timeoutMs?: number;
            };
            sort?: 2
            | 3
            | 1;
            throttle?: number;
        },
    ) => Promise<
        {
            data: {
                criterias: { criteria: string; rating: number
                | null }[];
                date: string;
                id: string;
                replyDate?: string;
                replyText?: string;
                score: number;
                text?: string;
                thumbsUp?: number;
                title?: string | null;
                userImage?: string;
                userName: string;
                version?: string;
            }[];
            nextPaginationToken: string
            | null;
        },
    >
    search: (
        options: {
            country?: string;
            fullDetail?: boolean;
            lang?: string;
            num?: number;
            onDegradation?: OnDegradation;
            price?: "free" | "all" | "paid";
            requestOptions?: {
                fetchImpl?: (
                    input: string | URL | Request,
                    init?: RequestInit,
                ) => Promise<Response>;
                headers?: Record<string, string>;
                onRequest?: OnRequest;
                onResponse?: OnResponse;
                onRetry?: OnRetry;
                retries?: number;
                signal?: AbortSignal;
                timeoutMs?: number;
            };
            term: string;
            throttle?: number;
        },
    ) => Promise<
        | {
            appId: string;
            currency?: string;
            developer: string;
            developerId?: string;
            free: boolean;
            icon: string;
            price: number;
            score?: number;
            scoreText?: string;
            summary?: string;
            title: string;
            url: string;
        }[]
        | {
            adSupported: boolean;
            androidMaxVersion: string;
            androidVersion: string;
            androidVersionText: string;
            appId: string;
            available: boolean;
            categories: { id: string
            | null; name: string }[];
            comments: string[];
            contentRating?: string;
            contentRatingDescription?: string;
            currency?: string;
            description: string;
            descriptionHTML: string;
            developer: string;
            developerAddress?: string;
            developerEmail?: string;
            developerId: string;
            developerInternalID: string;
            developerLegalAddress?: string;
            developerLegalEmail?: string;
            developerLegalName?: string;
            developerLegalPhoneNumber?: string;
            developerWebsite?: string;
            discountEndDate?: number;
            earlyAccessEnabled: boolean;
            free: boolean;
            genre: string;
            genreId: string;
            headerImage?: string;
            histogram: {
                "1": number;
                "2": number;
                "3": number;
                "4": number;
                "5": number;
            };
            IAPRange?: string;
            icon: string;
            installs?: string;
            isAvailableInPlayPass: boolean;
            maxInstalls?: number;
            minInstalls?: number;
            offersIAP: boolean;
            originalPrice?: number;
            preregister: boolean;
            previewVideo?: string;
            price: number;
            priceText: string;
            privacyPolicy?: string;
            ratings?: number;
            recentChanges?: string;
            released?: string;
            reviews?: number;
            score?: number;
            scoreText?: string;
            screenshots: string[];
            summary?: string;
            title: string;
            updated: number;
            url: string;
            version: string;
            video?: string;
            videoImage?: string;
        }[],
    >
    similar: (
        options: {
            appId: string;
            country?: string;
            fullDetail?: boolean;
            lang?: string;
            onDegradation?: OnDegradation;
            requestOptions?: {
                fetchImpl?: (
                    input: string | URL | Request,
                    init?: RequestInit,
                ) => Promise<Response>;
                headers?: Record<string, string>;
                onRequest?: OnRequest;
                onResponse?: OnResponse;
                onRetry?: OnRetry;
                retries?: number;
                signal?: AbortSignal;
                timeoutMs?: number;
            };
            throttle?: number;
        },
    ) => Promise<
        | {
            appId: string;
            currency?: string;
            developer: string;
            developerId?: string;
            free: boolean;
            icon: string;
            price: number;
            score?: number;
            scoreText?: string;
            summary?: string;
            title: string;
            url: string;
        }[]
        | {
            adSupported: boolean;
            androidMaxVersion: string;
            androidVersion: string;
            androidVersionText: string;
            appId: string;
            available: boolean;
            categories: { id: string
            | null; name: string }[];
            comments: string[];
            contentRating?: string;
            contentRatingDescription?: string;
            currency?: string;
            description: string;
            descriptionHTML: string;
            developer: string;
            developerAddress?: string;
            developerEmail?: string;
            developerId: string;
            developerInternalID: string;
            developerLegalAddress?: string;
            developerLegalEmail?: string;
            developerLegalName?: string;
            developerLegalPhoneNumber?: string;
            developerWebsite?: string;
            discountEndDate?: number;
            earlyAccessEnabled: boolean;
            free: boolean;
            genre: string;
            genreId: string;
            headerImage?: string;
            histogram: {
                "1": number;
                "2": number;
                "3": number;
                "4": number;
                "5": number;
            };
            IAPRange?: string;
            icon: string;
            installs?: string;
            isAvailableInPlayPass: boolean;
            maxInstalls?: number;
            minInstalls?: number;
            offersIAP: boolean;
            originalPrice?: number;
            preregister: boolean;
            previewVideo?: string;
            price: number;
            priceText: string;
            privacyPolicy?: string;
            ratings?: number;
            recentChanges?: string;
            released?: string;
            reviews?: number;
            score?: number;
            scoreText?: string;
            screenshots: string[];
            summary?: string;
            title: string;
            updated: number;
            url: string;
            version: string;
            video?: string;
            videoImage?: string;
        }[],
    >
    sort: { HELPFULNESS: 1; NEWEST: 2; RATING: 3 }
    suggest: (
        options: {
            country?: string;
            lang?: string;
            onDegradation?: OnDegradation;
            requestOptions?: {
                fetchImpl?: (
                    input: string | URL | Request,
                    init?: RequestInit,
                ) => Promise<Response>;
                headers?: Record<string, string>;
                onRequest?: OnRequest;
                onResponse?: OnResponse;
                onRetry?: OnRetry;
                retries?: number;
                signal?: AbortSignal;
                timeoutMs?: number;
            };
            term: string;
            throttle?: number;
        },
    ) => Promise<string[]>