interface OttoRouterUsageWindow {
    limit: number | null;
    used: number;
    remaining: number | null;
    percentUsed: number;
}
interface OttoRouterSubscription {
    active: boolean;
    tierId?: string;
    tierName?: string;
    creditsIncluded?: number;
    creditsUsed?: number;
    creditsRemaining?: number;
    creditsWeeklyLimit?: number | null;
    creditsFiveHourLimit?: number | null;
    usageWindows?: {
        weekly: OttoRouterUsageWindow;
        fiveHour: OttoRouterUsageWindow;
    };
    periodStart?: string;
    periodEnd?: string;
}
interface OttoRouterPayg {
    walletBalanceUsd: number;
    accountBalanceUsd: number;
    rawPoolUsd: number;
    effectiveSpendableUsd: number;
}
interface OttoRouterLimits {
    enabled: boolean;
    dailyLimitUsd: number | null;
    dailySpentUsd: number;
    dailyRemainingUsd: number | null;
    monthlyLimitUsd: number | null;
    monthlySpentUsd: number;
    monthlyRemainingUsd: number | null;
    capRemainingUsd: number | null;
}
interface OttoRouterState {
    balance: number | null;
    usdcBalance: number | null;
    network: 'mainnet' | 'devnet';
    isPaymentPending: boolean;
    lastPaymentAmount: number | null;
    walletAddress: string | null;
    isLoading: boolean;
    isTopupModalOpen: boolean;
    scope: 'wallet' | 'account' | null;
    payg: OttoRouterPayg | null;
    subscription: OttoRouterSubscription | null;
    limits: OttoRouterLimits | null;
    setBalance: (balance: number | null) => void;
    setUsdcBalance: (usdcBalance: number | null) => void;
    setNetwork: (network: 'mainnet' | 'devnet') => void;
    setPaymentPending: (pending: boolean) => void;
    setLastPaymentAmount: (amount: number | null) => void;
    setWalletAddress: (address: string | null) => void;
    setLoading: (loading: boolean) => void;
    openTopupModal: () => void;
    closeTopupModal: () => void;
    setScope: (scope: 'wallet' | 'account' | null) => void;
    setPayg: (payg: OttoRouterPayg | null) => void;
    setSubscription: (subscription: OttoRouterSubscription | null) => void;
    setLimits: (limits: OttoRouterLimits | null) => void;
}
export declare const useOttoRouterStore: import("zustand").UseBoundStore<import("zustand").StoreApi<OttoRouterState>>;
export {};
//# sourceMappingURL=ottorouterStore.d.ts.map