export interface Position {
  id: string;
  share: string;
  lastTaxTime: string;
  taxRate: string;
  status: string;
}

export interface EnvConfig {
  PROVIDER_URL: string;
  PRIVATE_KEY: string;
  LM_CONTRACT_ADDRESS: string;
  STAKE_CONTRACT_ADDRESS: string;
  GRAPHQL_ENDPOINT: string;
  ENVIRONMENT: string;
  PORT: string;
}

export interface RecenterAccessStatus {
  hasAccess: boolean;
  checkedAtMs: number;
  error: string | null;
}

export interface RecenterEligibility {
  checkedAtMs: number;
  canRecenter: boolean;
  reason: string | null;
  error: string | null;
}

export interface RecenterResult {
  executed: boolean;
  message?: string;
  txHash?: string;
  eligibility: RecenterEligibility;
}

export interface GraphQLResponse {
  data?: {
    positionss?: {
      items?: Position[];
    };
  };
  errors?: Array<{ message: string }>;
}
