import type { ChainType, ChainPrefix, IAgent, ISearchParams, ISearchResult } from './agent.js'; import type { IFeedback, IFeedbackInput, IFeedbackQuery, IFeedbackResult } from './feedback.js'; import type { IReputationSummary, ILeaderboardOptions, ILeaderboardResult } from './reputation.js'; export interface IChainConfig { chainType: ChainType; chainPrefix: ChainPrefix; chainId?: string; displayName: string; rpcUrl: string; indexerUrl?: string; isDefault?: boolean; priority?: number; } export interface IWriteOptions { skipSend?: boolean; } export interface IUnsignedTransactionResult { unsigned: true; transaction: string; message: string; } export interface ISignedTransactionResult { unsigned: false; signature: string; } export type ITransactionResult = IUnsignedTransactionResult | ISignedTransactionResult; export interface IChainProvider { readonly chainType: ChainType; readonly chainPrefix: ChainPrefix; readonly chainId: string; readonly displayName: string; initialize(): Promise; isReady(): boolean; canWrite(): boolean; getConfig(): IChainConfig; getAgent(agentId: string): Promise; agentExists(agentId: string): Promise; searchAgents(params: ISearchParams): Promise; getFeedback(agentId: string, client: string, index: bigint): Promise; listFeedbacks(query: IFeedbackQuery): Promise; getReputationSummary(agentId: string): Promise; isIndexerAvailable?(): Promise; getLeaderboard?(options?: ILeaderboardOptions): Promise; giveFeedback?(input: IFeedbackInput, options?: IWriteOptions): Promise; } export interface IWritableChainProvider extends IChainProvider { giveFeedback(input: IFeedbackInput, options?: IWriteOptions): Promise; } export declare function isWritableProvider(provider: IChainProvider): provider is IWritableChainProvider; //# sourceMappingURL=chain-provider.d.ts.map