import { ServiceType } from "@protobuf-ts/runtime-rpc";
import { MessageType } from "@protobuf-ts/runtime";
import { Epoch } from "./epoch.js";
import { Checkpoint } from "./checkpoint.js";
import { ExecutedTransaction } from "./executed_transaction.js";
import { Status } from "../../../google/rpc/status.js";
import { Object } from "./object.js";
import { FieldMask } from "../../../google/protobuf/field_mask.js";
import { Timestamp } from "../../../google/protobuf/timestamp.js";
export interface GetServiceInfoRequest {
}
export interface GetServiceInfoResponse {
    chainId?: string;
    chain?: string;
    epoch?: bigint;
    checkpointHeight?: bigint;
    timestamp?: Timestamp;
    lowestAvailableCheckpoint?: bigint;
    lowestAvailableCheckpointObjects?: bigint;
    server?: string;
}
export interface GetObjectRequest {
    objectId?: string;
    version?: bigint;
    readMask?: FieldMask;
}
export interface GetObjectResponse {
    object?: Object;
}
export interface BatchGetObjectsRequest {
    requests: GetObjectRequest[];
    readMask?: FieldMask;
}
export interface BatchGetObjectsResponse {
    objects: GetObjectResult[];
}
export interface GetObjectResult {
    result: {
        oneofKind: "object";
        object: Object;
    } | {
        oneofKind: "error";
        error: Status;
    } | {
        oneofKind: undefined;
    };
}
export interface GetTransactionRequest {
    digest?: string;
    readMask?: FieldMask;
}
export interface GetTransactionResponse {
    transaction?: ExecutedTransaction;
}
export interface BatchGetTransactionsRequest {
    digests: string[];
    readMask?: FieldMask;
}
export interface BatchGetTransactionsResponse {
    transactions: GetTransactionResult[];
}
export interface GetTransactionResult {
    result: {
        oneofKind: "transaction";
        transaction: ExecutedTransaction;
    } | {
        oneofKind: "error";
        error: Status;
    } | {
        oneofKind: undefined;
    };
}
export interface GetCheckpointRequest {
    checkpointId: {
        oneofKind: "sequenceNumber";
        sequenceNumber: bigint;
    } | {
        oneofKind: "digest";
        digest: string;
    } | {
        oneofKind: undefined;
    };
    readMask?: FieldMask;
}
export interface GetCheckpointResponse {
    checkpoint?: Checkpoint;
}
export interface GetEpochRequest {
    epoch?: bigint;
    readMask?: FieldMask;
}
export interface GetEpochResponse {
    epoch?: Epoch;
}
declare class GetServiceInfoRequest$Type extends MessageType<GetServiceInfoRequest> {
    constructor();
}
export declare const GetServiceInfoRequest: GetServiceInfoRequest$Type;
declare class GetServiceInfoResponse$Type extends MessageType<GetServiceInfoResponse> {
    constructor();
}
export declare const GetServiceInfoResponse: GetServiceInfoResponse$Type;
declare class GetObjectRequest$Type extends MessageType<GetObjectRequest> {
    constructor();
}
export declare const GetObjectRequest: GetObjectRequest$Type;
declare class GetObjectResponse$Type extends MessageType<GetObjectResponse> {
    constructor();
}
export declare const GetObjectResponse: GetObjectResponse$Type;
declare class BatchGetObjectsRequest$Type extends MessageType<BatchGetObjectsRequest> {
    constructor();
}
export declare const BatchGetObjectsRequest: BatchGetObjectsRequest$Type;
declare class BatchGetObjectsResponse$Type extends MessageType<BatchGetObjectsResponse> {
    constructor();
}
export declare const BatchGetObjectsResponse: BatchGetObjectsResponse$Type;
declare class GetObjectResult$Type extends MessageType<GetObjectResult> {
    constructor();
}
export declare const GetObjectResult: GetObjectResult$Type;
declare class GetTransactionRequest$Type extends MessageType<GetTransactionRequest> {
    constructor();
}
export declare const GetTransactionRequest: GetTransactionRequest$Type;
declare class GetTransactionResponse$Type extends MessageType<GetTransactionResponse> {
    constructor();
}
export declare const GetTransactionResponse: GetTransactionResponse$Type;
declare class BatchGetTransactionsRequest$Type extends MessageType<BatchGetTransactionsRequest> {
    constructor();
}
export declare const BatchGetTransactionsRequest: BatchGetTransactionsRequest$Type;
declare class BatchGetTransactionsResponse$Type extends MessageType<BatchGetTransactionsResponse> {
    constructor();
}
export declare const BatchGetTransactionsResponse: BatchGetTransactionsResponse$Type;
declare class GetTransactionResult$Type extends MessageType<GetTransactionResult> {
    constructor();
}
export declare const GetTransactionResult: GetTransactionResult$Type;
declare class GetCheckpointRequest$Type extends MessageType<GetCheckpointRequest> {
    constructor();
}
export declare const GetCheckpointRequest: GetCheckpointRequest$Type;
declare class GetCheckpointResponse$Type extends MessageType<GetCheckpointResponse> {
    constructor();
}
export declare const GetCheckpointResponse: GetCheckpointResponse$Type;
declare class GetEpochRequest$Type extends MessageType<GetEpochRequest> {
    constructor();
}
export declare const GetEpochRequest: GetEpochRequest$Type;
declare class GetEpochResponse$Type extends MessageType<GetEpochResponse> {
    constructor();
}
export declare const GetEpochResponse: GetEpochResponse$Type;
export declare const LedgerService: ServiceType;
export {};
