import { BlockHeadersService } from '@bsv/sdk';
import { ChaintracksServiceClient, ChaintracksServiceClientOptions } from './chaintracks/ChaintracksServiceClient';
import { sdk } from '../../index.client';
import { BlockHeader } from './chaintracks';
export declare class BHServiceClient implements ChaintracksServiceClient {
    bhs: BlockHeadersService;
    cache: Record<number, string>;
    chain: sdk.Chain;
    serviceUrl: string;
    options: ChaintracksServiceClientOptions;
    apiKey: string;
    constructor(chain: sdk.Chain, url: string, apiKey: string);
    currentHeight(): Promise<number>;
    isValidRootForHeight(root: string, height: number): Promise<boolean>;
    getPresentHeight(): Promise<number>;
    findHeaderForHeight(height: number): Promise<BlockHeader | undefined>;
    findHeaderForBlockHash(hash: string): Promise<BlockHeader | undefined>;
    getHeaders(height: number, count: number): Promise<string>;
    findChainWorkForBlockHash(hash: string): Promise<string | undefined>;
    findChainTipHeader(): Promise<BlockHeader>;
    getJsonOrUndefined<T>(path: string): Promise<T | undefined>;
    getJson<T>(path: string): Promise<T>;
    postJsonVoid<T>(path: string, params: T): Promise<void>;
    addHeader(header: any): Promise<void>;
    findHeaderForMerkleRoot(merkleRoot: string, height?: number): Promise<undefined>;
    startListening(): Promise<void>;
    listening(): Promise<void>;
    isSynchronized(): Promise<boolean>;
    getChain(): Promise<sdk.Chain>;
    isListening(): Promise<boolean>;
    getChainTipHeader(): Promise<BlockHeader>;
    findChainTipHashHex(): Promise<string>;
}
//# sourceMappingURL=BHServiceClient.d.ts.map