import { PrivateKeyAccount } from 'viem';

interface AccountConfig {
    address?: string;
    privateKeyAccount?: PrivateKeyAccount;
}
interface PartnerConfig {
    trackingCode?: string;
    referrer?: string;
}
interface PythConfig {
    pythEndpoint?: string;
    username?: string;
    password?: string;
    cacheTtl?: number;
}
interface RpcConfig {
    chainId: number;
    rpcEndpoint?: string;
    preset?: string;
}
interface DefaultConfig {
    resolveMarketName?: boolean;
    maxPriceImpact?: number;
    logLevel?: number;
}
interface SdkConfigParams {
    accountConfig: AccountConfig;
    partnerConfig?: PartnerConfig;
    pythConfig?: PythConfig;
    rpcConfig: RpcConfig;
    defaultConfig?: DefaultConfig;
}

export type { AccountConfig, DefaultConfig, PartnerConfig, PythConfig, RpcConfig, SdkConfigParams };
