import { ClobClient, ApiKeyCreds, Side } from "@polymarket/clob-client";
import { ethers } from "ethers";
import { ConfigService } from "./config.service.js";
interface Token {
    token_id: string;
    outcome: string;
    price: number;
    winner: boolean;
}
interface Rewards {
    incentiveProgram: string;
    totalRewardPool: string;
}
export interface Market {
    condition_id: string;
    question_id: string;
    tokens: [Token, Token];
    rewards: Rewards;
    minimum_order_size: string;
    minimum_tick_size: string;
    description: string;
    category: string;
    end_date_iso: string;
    game_start_time: string | null;
    question: string;
    market_slug: string;
    min_incentive_size: string;
    max_incentive_spread: string;
    active: boolean;
    closed: boolean;
    seconds_delay: number;
    icon: string;
    fpmm: string;
}
export declare class PolymarketService {
    clobClient: ClobClient | undefined;
    signer: ethers.Wallet | undefined;
    private configService;
    private initialized;
    constructor(configService: ConfigService);
    private initializeWallet;
    private ensureInitialized;
    fetchAllMarkets(): Promise<Market[]>;
    getMarketsAcceptingOrders(): Promise<Array<{
        yes: Token;
        no: Token;
        question: string;
    }>>;
    marketOrder(tokenID: string, side: Side, size: number, price: number): Promise<unknown>;
    getOrderBook(tokenId: string): Promise<unknown>;
    cancelAll(): Promise<unknown>;
    getApiKeys(): Promise<ApiKeyCreds>;
    getPositions(): Promise<Position[]>;
    getWalletAddress(): string | undefined;
}
export interface Position {
    asset: string;
    conditionId: string;
    curPrice: number;
    currentValue: number;
    initialValue: number;
    outcome: string;
    percentPnl: number;
    cashPnl: number;
    price: number;
    pricePerShare: number;
    proxyWallet: string | null;
    redeemable: boolean;
    size: number;
    title: string;
}
export {};
