import { sdk } from '../../../index.client';
import { BaseBlockHeader, BlockHeader } from './Api/BlockHeaderApi';
export interface ChaintracksServiceClientOptions {
    useAuthrite: boolean;
}
/**
 * Connects to a ChaintracksService to implement 'ChaintracksClientApi'
 *
 */
export declare class ChaintracksServiceClient {
    chain: sdk.Chain;
    serviceUrl: string;
    static createChaintracksServiceClientOptions(): ChaintracksServiceClientOptions;
    options: ChaintracksServiceClientOptions;
    constructor(chain: sdk.Chain, serviceUrl: string, options?: ChaintracksServiceClientOptions);
    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<sdk.Chain>;
    isListening(): Promise<boolean>;
    isSynchronized(): Promise<boolean>;
    getPresentHeight(): Promise<number>;
    findChainTipHeader(): Promise<BlockHeader>;
    findChainTipHashHex(): Promise<string>;
    getHeaders(height: number, count: number): Promise<string>;
    findHeaderForHeight(height: number): Promise<BlockHeader | undefined>;
    findChainWorkForBlockHash(hash: string): Promise<string | undefined>;
    findHeaderForBlockHash(hash: string): Promise<BlockHeader | undefined>;
    findHeaderForMerkleRoot(merkleRoot: string, height?: number): Promise<BlockHeader | undefined>;
}
//# sourceMappingURL=ChaintracksServiceClient.d.ts.map