import { ProductManager } from "./managers/product.manager.js";
import { OrderManager } from "./managers/order.manager.js";
import { AuthManager } from "./managers/auth.manager.js";
import { ShopeeRegion } from "./schemas/region.js";
import { TokenStorage } from "./storage/token-storage.interface.js";
import { AccessToken } from "./schemas/access-token.js";
import { PublicManager } from "./managers/public.manager.js";
import { PushManager } from "./managers/push.manager.js";
import { PaymentManager } from "./managers/payment.manager.js";
import { LogisticsManager } from "./managers/logistics.manager.js";
import { VoucherManager } from "./managers/voucher.manager.js";
import { AdsManager } from "./managers/ads.manager.js";
import { AccountHealthManager } from "./managers/account-health.manager.js";
import { MerchantManager } from "./managers/merchant.manager.js";
import { ShopManager } from "./managers/shop.manager.js";
import { MediaManager } from "./managers/media.manager.js";
import { MediaSpaceManager } from "./managers/media-space.manager.js";
import { GlobalProductManager } from "./managers/global-product.manager.js";
import { FirstMileManager } from "./managers/first-mile.manager.js";
import { DiscountManager } from "./managers/discount.manager.js";
import { BundleDealManager } from "./managers/bundle-deal.manager.js";
import { AddOnDealManager } from "./managers/add-on-deal.manager.js";
import { ShopFlashSaleManager } from "./managers/shop-flash-sale.manager.js";
import { FollowPrizeManager } from "./managers/follow-prize.manager.js";
import { TopPicksManager } from "./managers/top-picks.manager.js";
import { ShopCategoryManager } from "./managers/shop-category.manager.js";
import { ReturnsManager } from "./managers/returns.manager.js";
import { SbsManager } from "./managers/sbs.manager.js";
import { FbsManager } from "./managers/fbs.manager.js";
import { LiveStreamManager } from "./managers/livestream.manager.js";
import { AmsManager } from "./managers/ams.manager.js";
import { VideoManager } from "./managers/video.manager.js";
import { Agent } from "node:http";
export interface ShopeeConfig {
    partner_id: number;
    partner_key: string;
    region?: ShopeeRegion;
    base_url?: string;
    base_auth_url?: string;
    sdk?: ShopeeSDK;
    shop_id?: number;
    agent?: Agent;
}
export declare class ShopeeSDK {
    private config;
    private tokenStorage;
    readonly ads: AdsManager;
    readonly product: ProductManager;
    readonly order: OrderManager;
    readonly auth: AuthManager;
    readonly public: PublicManager;
    readonly push: PushManager;
    readonly payment: PaymentManager;
    readonly logistics: LogisticsManager;
    readonly voucher: VoucherManager;
    readonly accountHealth: AccountHealthManager;
    readonly merchant: MerchantManager;
    readonly shop: ShopManager;
    readonly media: MediaManager;
    readonly mediaSpace: MediaSpaceManager;
    readonly globalProduct: GlobalProductManager;
    readonly firstMile: FirstMileManager;
    readonly discount: DiscountManager;
    readonly bundleDeal: BundleDealManager;
    readonly addOnDeal: AddOnDealManager;
    readonly shopFlashSale: ShopFlashSaleManager;
    readonly followPrize: FollowPrizeManager;
    readonly topPicks: TopPicksManager;
    readonly shopCategory: ShopCategoryManager;
    readonly returns: ReturnsManager;
    readonly sbs: SbsManager;
    readonly fbs: FbsManager;
    readonly livestream: LiveStreamManager;
    readonly ams: AmsManager;
    readonly video: VideoManager;
    constructor(config: ShopeeConfig, tokenStorage?: TokenStorage);
    getConfig(): ShopeeConfig;
    setRegion(region: ShopeeRegion): void;
    setBaseUrl(baseUrl: string): void;
    setBaseAuthUrl(baseAuthUrl: string): void;
    setFetchAgent(fetchAgent: Agent): void;
    getAuthorizationUrl(redirect_uri: string, options?: {
        auth_type?: "seller" | "supplier" | "user";
        state?: string;
    }): string;
    authenticateWithCode(code: string, shopId?: number, mainAccountId?: number): Promise<AccessToken | null>;
    getAuthToken(): Promise<AccessToken | null>;
    refreshToken(shop_id?: number, merchant_id?: number): Promise<AccessToken | null>;
}
export default ShopeeSDK;
