import type { Hash, JsonValue } from '@ariestools/sdk';
import type { Payload, WithStorageMeta } from '@xyo-network/sdk';
/** Fields stored by a chain indexing service to track its indexing progress and state */
export interface ChainIndexingServiceStateFields<T extends JsonValue = JsonValue> {
    /**
     * The hash of the last block that this service has indexing
     */
    endBlockHash: Hash;
    /**
     * The hash of the block that the service started indexing. If undefined, the service is
     * assumed to have started indexing from the genesis block
     */
    startBlockHash?: Hash;
    /**
     * The indexed state for the range
     */
    state: T;
}
/** Schema identifier for chain indexing service state payloads */
export declare const ChainIndexingServiceStateSchema: "network.xyo.chain.indexing.service.state" & {
    readonly __schema: true;
};
/** Schema type for ChainIndexingServiceState payloads. */
export type ChainIndexingServiceStateSchema = typeof ChainIndexingServiceStateSchema;
/**
 * The result of a ChainIndexingServiceState
 */
export type ChainIndexingServiceState<T extends JsonValue = JsonValue> = Payload<ChainIndexingServiceStateFields<T>, ChainIndexingServiceStateSchema>;
/**
 * Identity functions for determining if an object is an ChainIndexingServiceState
 */
export declare const isChainIndexingServiceState: <T extends JsonValue = JsonValue>(payload?: unknown) => payload is ChainIndexingServiceState<T>;
/** Type assertion factory for ChainIndexingServiceState payloads */
export declare const asChainIndexingServiceState: import("@ariestools/sdk").AsTypeFunction<ChainIndexingServiceState<JsonValue>>;
/** Type guard for ChainIndexingServiceState with storage metadata */
export declare const isChainIndexingServiceStateWithStorageMeta: <T extends JsonValue = JsonValue>(value: unknown) => value is WithStorageMeta<ChainIndexingServiceState<T>>;
/** Type assertion factory for ChainIndexingServiceState with storage metadata */
export declare const asChainIndexingServiceStateWithStorageMeta: import("@ariestools/sdk").AsTypeFunction<WithStorageMeta<ChainIndexingServiceState<JsonValue>>>;
//# sourceMappingURL=ChainIndexingServiceStateSchema.d.ts.map