import { z } from 'zod';
import { ToolBubble } from '../../types/tool-bubble-class.js';
import type { BubbleContext } from '../../types/bubble.js';
import { CredentialType, type BubbleName } from '@bubblelab/shared-schemas';
declare const AppRankingsToolParamsSchema: z.ZodObject<{
    operation: z.ZodEnum<["rankings"]>;
    stores: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodEnum<["apple", "google"]>, "many">>>;
    countries: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString, "many">>>;
    appleCategories: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString, "many">>>;
    googleCategories: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString, "many">>>;
    chartType: z.ZodOptional<z.ZodDefault<z.ZodEnum<["free", "paid", "grossing"]>>>;
    limit: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
    credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
}, "strip", z.ZodTypeAny, {
    operation: "rankings";
    credentials?: Partial<Record<CredentialType, string>> | undefined;
    limit?: number | undefined;
    stores?: ("google" | "apple")[] | undefined;
    appleCategories?: string[] | undefined;
    googleCategories?: string[] | undefined;
    chartType?: "free" | "paid" | "grossing" | undefined;
    countries?: string[] | undefined;
}, {
    operation: "rankings";
    credentials?: Partial<Record<CredentialType, string>> | undefined;
    limit?: number | undefined;
    stores?: ("google" | "apple")[] | undefined;
    appleCategories?: string[] | undefined;
    googleCategories?: string[] | undefined;
    chartType?: "free" | "paid" | "grossing" | undefined;
    countries?: string[] | undefined;
}>;
declare const AppRankingsToolResultSchema: z.ZodObject<{
    operation: z.ZodEnum<["rankings"]>;
    rankings: z.ZodArray<z.ZodObject<{
        store: z.ZodEnum<["apple", "google"]>;
        rank: z.ZodNumber;
        appName: z.ZodString;
        appId: z.ZodString;
        appUrl: z.ZodNullable<z.ZodString>;
        developer: z.ZodNullable<z.ZodString>;
        rating: z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
        ratingCount: z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
        price: z.ZodNullable<z.ZodString>;
        category: z.ZodString;
        chartType: z.ZodString;
        genres: z.ZodNullable<z.ZodString>;
        country: z.ZodString;
        releaseDate: z.ZodNullable<z.ZodString>;
        iconUrl: z.ZodNullable<z.ZodString>;
        scrapedAt: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        store: "google" | "apple";
        developer: string | null;
        country: string;
        rating: string | number | null;
        category: string;
        price: string | null;
        scrapedAt: string;
        rank: number;
        appId: string;
        iconUrl: string | null;
        appName: string;
        appUrl: string | null;
        ratingCount: string | number | null;
        chartType: string;
        genres: string | null;
        releaseDate: string | null;
    }, {
        store: "google" | "apple";
        developer: string | null;
        country: string;
        rating: string | number | null;
        category: string;
        price: string | null;
        scrapedAt: string;
        rank: number;
        appId: string;
        iconUrl: string | null;
        appName: string;
        appUrl: string | null;
        ratingCount: string | number | null;
        chartType: string;
        genres: string | null;
        releaseDate: string | null;
    }>, "many">;
    totalApps: z.ZodNumber;
    success: z.ZodBoolean;
    error: z.ZodString;
}, "strip", z.ZodTypeAny, {
    error: string;
    success: boolean;
    operation: "rankings";
    rankings: {
        store: "google" | "apple";
        developer: string | null;
        country: string;
        rating: string | number | null;
        category: string;
        price: string | null;
        scrapedAt: string;
        rank: number;
        appId: string;
        iconUrl: string | null;
        appName: string;
        appUrl: string | null;
        ratingCount: string | number | null;
        chartType: string;
        genres: string | null;
        releaseDate: string | null;
    }[];
    totalApps: number;
}, {
    error: string;
    success: boolean;
    operation: "rankings";
    rankings: {
        store: "google" | "apple";
        developer: string | null;
        country: string;
        rating: string | number | null;
        category: string;
        price: string | null;
        scrapedAt: string;
        rank: number;
        appId: string;
        iconUrl: string | null;
        appName: string;
        appUrl: string | null;
        ratingCount: string | number | null;
        chartType: string;
        genres: string | null;
        releaseDate: string | null;
    }[];
    totalApps: number;
}>;
type AppRankingsToolParams = z.output<typeof AppRankingsToolParamsSchema>;
type AppRankingsToolResult = z.output<typeof AppRankingsToolResultSchema>;
type AppRankingsToolParamsInput = z.input<typeof AppRankingsToolParamsSchema>;
export declare class AppRankingsTool extends ToolBubble<AppRankingsToolParams, AppRankingsToolResult> {
    static readonly bubbleName: BubbleName;
    static readonly schema: z.ZodObject<{
        operation: z.ZodEnum<["rankings"]>;
        stores: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodEnum<["apple", "google"]>, "many">>>;
        countries: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString, "many">>>;
        appleCategories: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString, "many">>>;
        googleCategories: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString, "many">>>;
        chartType: z.ZodOptional<z.ZodDefault<z.ZodEnum<["free", "paid", "grossing"]>>>;
        limit: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
        credentials: z.ZodOptional<z.ZodRecord<z.ZodNativeEnum<typeof CredentialType>, z.ZodString>>;
    }, "strip", z.ZodTypeAny, {
        operation: "rankings";
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        limit?: number | undefined;
        stores?: ("google" | "apple")[] | undefined;
        appleCategories?: string[] | undefined;
        googleCategories?: string[] | undefined;
        chartType?: "free" | "paid" | "grossing" | undefined;
        countries?: string[] | undefined;
    }, {
        operation: "rankings";
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        limit?: number | undefined;
        stores?: ("google" | "apple")[] | undefined;
        appleCategories?: string[] | undefined;
        googleCategories?: string[] | undefined;
        chartType?: "free" | "paid" | "grossing" | undefined;
        countries?: string[] | undefined;
    }>;
    static readonly resultSchema: z.ZodObject<{
        operation: z.ZodEnum<["rankings"]>;
        rankings: z.ZodArray<z.ZodObject<{
            store: z.ZodEnum<["apple", "google"]>;
            rank: z.ZodNumber;
            appName: z.ZodString;
            appId: z.ZodString;
            appUrl: z.ZodNullable<z.ZodString>;
            developer: z.ZodNullable<z.ZodString>;
            rating: z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
            ratingCount: z.ZodNullable<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
            price: z.ZodNullable<z.ZodString>;
            category: z.ZodString;
            chartType: z.ZodString;
            genres: z.ZodNullable<z.ZodString>;
            country: z.ZodString;
            releaseDate: z.ZodNullable<z.ZodString>;
            iconUrl: z.ZodNullable<z.ZodString>;
            scrapedAt: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            store: "google" | "apple";
            developer: string | null;
            country: string;
            rating: string | number | null;
            category: string;
            price: string | null;
            scrapedAt: string;
            rank: number;
            appId: string;
            iconUrl: string | null;
            appName: string;
            appUrl: string | null;
            ratingCount: string | number | null;
            chartType: string;
            genres: string | null;
            releaseDate: string | null;
        }, {
            store: "google" | "apple";
            developer: string | null;
            country: string;
            rating: string | number | null;
            category: string;
            price: string | null;
            scrapedAt: string;
            rank: number;
            appId: string;
            iconUrl: string | null;
            appName: string;
            appUrl: string | null;
            ratingCount: string | number | null;
            chartType: string;
            genres: string | null;
            releaseDate: string | null;
        }>, "many">;
        totalApps: z.ZodNumber;
        success: z.ZodBoolean;
        error: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        error: string;
        success: boolean;
        operation: "rankings";
        rankings: {
            store: "google" | "apple";
            developer: string | null;
            country: string;
            rating: string | number | null;
            category: string;
            price: string | null;
            scrapedAt: string;
            rank: number;
            appId: string;
            iconUrl: string | null;
            appName: string;
            appUrl: string | null;
            ratingCount: string | number | null;
            chartType: string;
            genres: string | null;
            releaseDate: string | null;
        }[];
        totalApps: number;
    }, {
        error: string;
        success: boolean;
        operation: "rankings";
        rankings: {
            store: "google" | "apple";
            developer: string | null;
            country: string;
            rating: string | number | null;
            category: string;
            price: string | null;
            scrapedAt: string;
            rank: number;
            appId: string;
            iconUrl: string | null;
            appName: string;
            appUrl: string | null;
            ratingCount: string | number | null;
            chartType: string;
            genres: string | null;
            releaseDate: string | null;
        }[];
        totalApps: number;
    }>;
    static readonly shortDescription = "Scrape Apple App Store and Google Play top free, paid, and grossing chart rankings across countries and categories.";
    static readonly longDescription = "\n    App store rankings scraping tool for iOS and Android top charts.\n\n    Operations:\n    - rankings: Get top chart rankings (free, paid, or grossing) across 60+ countries and 50+ categories\n\n    Supports both Apple App Store and Google Play Store in a single run.\n    Returns up to `limit` apps per store/country/category combination as a flat array.\n    Use the `store`, `country`, and `category` fields on each result to filter/group.\n\n    Examples:\n      // US top 10 free apps (both stores):\n      { operation: 'rankings', limit: 10 }\n\n      // Apple-only Games category, top 50:\n      { operation: 'rankings', stores: ['apple'], appleCategories: ['6014'], limit: 50 }\n\n      // Top grossing across US, JP, DE:\n      { operation: 'rankings', chartType: 'grossing', countries: ['us', 'jp', 'de'] }\n\n      // Multiple categories (Health & Medical):\n      { operation: 'rankings', appleCategories: ['6013', '6020'], googleCategories: ['HEALTH_AND_FITNESS', 'MEDICAL'] }\n\n    Apple Category IDs: overall, 6000 (Business), 6001 (Weather), 6002 (Utilities), 6003 (Travel),\n      6004 (Sports), 6005 (Social Networking), 6006 (Reference), 6007 (Productivity), 6008 (Lifestyle),\n      6009 (News), 6010 (Navigation), 6011 (Music), 6012 (Photo & Video), 6013 (Health & Fitness),\n      6014 (Games), 6015 (Finance), 6016 (Entertainment), 6017 (Education), 6018 (Books),\n      6020 (Medical), 6023 (Food & Drink), 6024 (Shopping), 6026 (Magazines & Newspapers)\n\n    Google Play Categories: APPLICATION, GAME, ART_AND_DESIGN, AUTO_AND_VEHICLES, BEAUTY,\n      BOOKS_AND_REFERENCE, BUSINESS, COMMUNICATION, DATING, EDUCATION, ENTERTAINMENT, EVENTS,\n      FINANCE, FOOD_AND_DRINK, HEALTH_AND_FITNESS, LIFESTYLE, MAPS_AND_NAVIGATION, MEDICAL,\n      MUSIC_AND_AUDIO, NEWS_AND_MAGAZINES, PHOTOGRAPHY, PRODUCTIVITY, SHOPPING, SOCIAL, SPORTS,\n      TOOLS, TRAVEL_AND_LOCAL, VIDEO_PLAYERS, WEATHER\n\n    Uses Apify's slothtechlabs/ios-android-app-rankings-scraper.\n  ";
    static readonly alias = "app-rankings";
    static readonly type = "tool";
    constructor(params?: AppRankingsToolParamsInput, context?: BubbleContext);
    performAction(): Promise<AppRankingsToolResult>;
    private createErrorResult;
    private scrapeRankings;
    private transformRankings;
}
export {};
//# sourceMappingURL=app-rankings-tool.d.ts.map