import type { CommunityConfig } from "../index";
import { ERC20TransferLogData } from "./transfer";
import { MessageExtraData } from "./extra";
export interface Log<D = LogData, E = unknown> {
    hash: string;
    tx_hash: string;
    created_at: string;
    updated_at: string;
    nonce: number;
    sender: string;
    to: string;
    value: string;
    data: D | null;
    extra_data: E | null;
    status: LogStatus;
}
export type ERC20TransferLog = Log<ERC20TransferLogData, MessageExtraData | null>;
export declare enum LogStatus {
    Unknown = "",
    Sending = "sending",
    Pending = "pending",
    Success = "success",
    Fail = "fail"
}
export interface ResponsePaginationMetadata {
    limit: number;
    offset: number;
    total: number;
}
export interface ObjectResponse<T, M> {
    object: T;
    meta: M;
}
export interface ArrayResponse<T, M> {
    array: T[];
    meta: M;
}
export interface PaginationParams {
    limit: number;
    offset: number;
}
export interface LogData {
    [key: string]: string;
}
export interface LogQueryParams {
    maxDate: string;
    data?: LogData;
    orData?: LogData;
}
export interface NewLogQueryParams {
    fromDate: string;
    data?: LogData;
    orData?: LogData;
}
export declare function logDataToQueryString(data: LogData, prefix?: string): string;
export declare class LogsService<D = LogData, E = unknown> {
    private url;
    constructor(config: CommunityConfig);
    getLog(tokenAddress: string, hash: string): Promise<ObjectResponse<Log<D, E>, undefined>>;
    getLogs(tokenAddress: string, topic: string, params?: PaginationParams & LogQueryParams): Promise<ArrayResponse<Log<D, E>, ResponsePaginationMetadata>>;
    getAllLogs(tokenAddress: string, topic: string, params?: PaginationParams & LogQueryParams): Promise<ArrayResponse<Log<D, E>, ResponsePaginationMetadata>>;
    getNewLogs(tokenAddress: string, topic: string, params?: PaginationParams & NewLogQueryParams): Promise<ArrayResponse<Log<D, E>, ResponsePaginationMetadata>>;
    getAllNewLogs(tokenAddress: string, topic: string, params?: PaginationParams & NewLogQueryParams): Promise<ArrayResponse<Log<D, E>, ResponsePaginationMetadata>>;
}
//# sourceMappingURL=index.d.ts.map