import type { Hash } from '@ariestools/sdk';
import type { BlockViewer, TimeDomain, TimePayload, TimeSyncViewer } from '@xyo-network/xl1-protocol/protocol-lib';
import type { Provider } from 'ethers';
import type { CreatableProviderParams } from '../../CreatableProvider/index.js';
import { AbstractCreatableProvider } from '../../CreatableProvider/index.js';
/** Parameters for SimpleTimeSyncViewer. */
export interface SimpleTimeSyncViewerParams extends CreatableProviderParams {
}
/** SimpleTimeSyncViewer implementation. */
export declare class SimpleTimeSyncViewer extends AbstractCreatableProvider<SimpleTimeSyncViewerParams> implements TimeSyncViewer {
    /** Connection kinds supported by this provider. */
    static readonly connectionTypes: readonly ["none"];
    /** Primary moniker used to resolve this provider. */
    static readonly defaultMoniker: "TimeSyncViewer";
    /** Provider monikers that must resolve before this provider can be created. */
    static readonly dependencies: "BlockViewer"[];
    /** Provider monikers implemented by this provider class. */
    static readonly monikers: "TimeSyncViewer"[];
    /** Read, write, or mixed capability surface exposed by the provider. */
    static readonly surface: "node";
    /** Moniker implemented by this provider instance. */
    moniker: "TimeSyncViewer";
    private _blockViewer?;
    private _ethProvider?;
    protected get blockViewer(): BlockViewer<"BlockViewer">;
    protected get ethProvider(): Provider | undefined;
    /** Returns the convert time result exposed by this provider. */
    convertTime(fromDomain: TimeDomain, toDomain: TimeDomain, from: number): Promise<number>;
    /** Creates the provider instance after its dependencies and configuration have resolved. */
    createHandler(): Promise<void>;
    /** Returns time. */
    currentTime(domain: TimeDomain): Promise<[TimeDomain, number]>;
    /** Returns time and hash. */
    currentTimeAndHash(domain: TimeDomain): Promise<[number, Hash | null]>;
    /** Returns time payload. */
    currentTimePayload(): Promise<TimePayload>;
}
//# sourceMappingURL=SimpleTimeSyncViewer.d.ts.map