export interface ApyData {
    token_symbol: string;
    apy: number;
    protocol_name: string;
    network: string;
    additional_info?: Record<string, any>;
}
export interface Protocol {
    name: string;
    network: string;
    fetchApys(): Promise<ApyData[]>;
}
export declare class ApyFetcherError extends Error {
    readonly protocol?: string | undefined;
    readonly cause?: Error | undefined;
    constructor(message: string, protocol?: string | undefined, cause?: Error | undefined);
}
export declare class NetworkError extends ApyFetcherError {
    constructor(message: string, protocol?: string, cause?: Error);
}
export declare class ValidationError extends ApyFetcherError {
    constructor(message: string, protocol?: string, cause?: Error);
}
export declare class AuthenticationError extends ApyFetcherError {
    constructor(message: string, protocol?: string, cause?: Error);
}
export interface TokenMapping {
    [address: string]: string;
}
export interface NetworkTokenMappings {
    [network: string]: TokenMapping;
}
export interface ApyResult {
    success: boolean;
    data?: ApyData[];
    error?: ApyFetcherError;
    protocol: string;
}
export interface GroupedApys {
    [tokenSymbol: string]: ApyData[];
}
export interface BestApyResult {
    token_symbol: string;
    apy: number;
    network: string;
}
//# sourceMappingURL=index.d.ts.map