import { Chain } from '../../../sdk/types';
import { BaseBlockHeader, BlockHeader } from './Api/BlockHeaderApi';
import { ChaintracksClientApi, ChaintracksInfoApi, HeaderListener, ReorgListener } from './Api/ChaintracksClientApi';
export interface ChaintracksServiceClientOptions {
}
/**
 * Connects to a ChaintracksService to implement 'ChaintracksClientApi'
 *
 */
export declare class ChaintracksServiceClient implements ChaintracksClientApi {
    chain: Chain;
    serviceUrl: string;
    static createChaintracksServiceClientOptions(): ChaintracksServiceClientOptions;
    options: ChaintracksServiceClientOptions;
    constructor(chain: Chain, serviceUrl: string, options?: ChaintracksServiceClientOptions);
    subscribeHeaders(listener: HeaderListener): Promise<string>;
    subscribeReorgs(listener: ReorgListener): Promise<string>;
    unsubscribe(subscriptionId: string): Promise<boolean>;
    currentHeight(): Promise<number>;
    isValidRootForHeight(root: string, height: number): Promise<boolean>;
    getJsonOrUndefined<T>(path: string): Promise<T | undefined>;
    getJson<T>(path: string): Promise<T>;
    postJsonVoid<T>(path: string, params: T): Promise<void>;
    addHeader(header: BaseBlockHeader): Promise<void>;
    startListening(): Promise<void>;
    listening(): Promise<void>;
    getChain(): Promise<Chain>;
    isListening(): Promise<boolean>;
    isSynchronized(): Promise<boolean>;
    getPresentHeight(): Promise<number>;
    getInfo(): Promise<ChaintracksInfoApi>;
    findChainTipHeader(): Promise<BlockHeader>;
    findChainTipHash(): Promise<string>;
    getHeaders(height: number, count: number): Promise<string>;
    findHeaderForHeight(height: number): Promise<BlockHeader | undefined>;
    findHeaderForBlockHash(hash: string): Promise<BlockHeader | undefined>;
}
//# sourceMappingURL=ChaintracksServiceClient.d.ts.map