import { ServiceType } from '@protobuf-ts/runtime-rpc';
import type { BinaryWriteOptions } from '@protobuf-ts/runtime';
import type { IBinaryWriter } from '@protobuf-ts/runtime';
import type { BinaryReadOptions } from '@protobuf-ts/runtime';
import type { IBinaryReader } from '@protobuf-ts/runtime';
import type { PartialMessage } from '@protobuf-ts/runtime';
import { MessageType } from '@protobuf-ts/runtime';
import { Duration } from '../../../../../google/protobuf/duration.js';
import { ExperimentalFeatures } from './experimental_features.js';
/**
 * @generated from protobuf message com.daml.ledger.api.v2.GetLedgerApiVersionRequest
 */
export interface GetLedgerApiVersionRequest {
}
/**
 * @generated from protobuf message com.daml.ledger.api.v2.GetLedgerApiVersionResponse
 */
export interface GetLedgerApiVersionResponse {
    /**
     * The version of the ledger API.
     *
     * @generated from protobuf field: string version = 1
     */
    version: string;
    /**
     * The features supported by this Ledger API endpoint.
     *
     * Daml applications CAN use the feature descriptor on top of
     * version constraints on the Ledger API version to determine
     * whether a given Ledger API endpoint supports the features
     * required to run the application.
     *
     * See the feature descriptions themselves for the relation between
     * Ledger API versions and feature presence.
     *
     * @generated from protobuf field: com.daml.ledger.api.v2.FeaturesDescriptor features = 2
     */
    features?: FeaturesDescriptor;
}
/**
 * @generated from protobuf message com.daml.ledger.api.v2.FeaturesDescriptor
 */
export interface FeaturesDescriptor {
    /**
     * Features under development or features that are used
     * for ledger implementation testing purposes only.
     *
     * Daml applications SHOULD not depend on these in production.
     *
     * @generated from protobuf field: com.daml.ledger.api.v2.ExperimentalFeatures experimental = 1
     */
    experimental?: ExperimentalFeatures;
    /**
     * If set, then the Ledger API server supports user management.
     * It is recommended that clients query this field to gracefully adjust their behavior for
     * ledgers that do not support user management.
     *
     * @generated from protobuf field: com.daml.ledger.api.v2.UserManagementFeature user_management = 2
     */
    userManagement?: UserManagementFeature;
    /**
     * If set, then the Ledger API server supports party management configurability.
     * It is recommended that clients query this field to gracefully adjust their behavior to
     * maximum party page size.
     *
     * @generated from protobuf field: com.daml.ledger.api.v2.PartyManagementFeature party_management = 3
     */
    partyManagement?: PartyManagementFeature;
    /**
     * It contains the timeouts related to the periodic offset checkpoint emission
     *
     * @generated from protobuf field: com.daml.ledger.api.v2.OffsetCheckpointFeature offset_checkpoint = 4
     */
    offsetCheckpoint?: OffsetCheckpointFeature;
}
/**
 * @generated from protobuf message com.daml.ledger.api.v2.UserManagementFeature
 */
export interface UserManagementFeature {
    /**
     * Whether the Ledger API server provides the user management service.
     *
     * @generated from protobuf field: bool supported = 1
     */
    supported: boolean;
    /**
     * The maximum number of rights that can be assigned to a single user.
     * Servers MUST support at least 100 rights per user.
     * A value of 0 means that the server enforces no rights per user limit.
     *
     * @generated from protobuf field: int32 max_rights_per_user = 2
     */
    maxRightsPerUser: number;
    /**
     * The maximum number of users the server can return in a single response (page).
     * Servers MUST support at least a 100 users per page.
     * A value of 0 means that the server enforces no page size limit.
     *
     * @generated from protobuf field: int32 max_users_page_size = 3
     */
    maxUsersPageSize: number;
}
/**
 * @generated from protobuf message com.daml.ledger.api.v2.PartyManagementFeature
 */
export interface PartyManagementFeature {
    /**
     * The maximum number of parties the server can return in a single response (page).
     *
     * @generated from protobuf field: int32 max_parties_page_size = 1
     */
    maxPartiesPageSize: number;
}
/**
 * @generated from protobuf message com.daml.ledger.api.v2.OffsetCheckpointFeature
 */
export interface OffsetCheckpointFeature {
    /**
     * The maximum delay to emmit a new OffsetCheckpoint if it exists
     *
     * @generated from protobuf field: google.protobuf.Duration max_offset_checkpoint_emission_delay = 1
     */
    maxOffsetCheckpointEmissionDelay?: Duration;
}
declare class GetLedgerApiVersionRequest$Type extends MessageType<GetLedgerApiVersionRequest> {
    constructor();
    create(value?: PartialMessage<GetLedgerApiVersionRequest>): GetLedgerApiVersionRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetLedgerApiVersionRequest): GetLedgerApiVersionRequest;
    internalBinaryWrite(message: GetLedgerApiVersionRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message com.daml.ledger.api.v2.GetLedgerApiVersionRequest
 */
export declare const GetLedgerApiVersionRequest: GetLedgerApiVersionRequest$Type;
declare class GetLedgerApiVersionResponse$Type extends MessageType<GetLedgerApiVersionResponse> {
    constructor();
    create(value?: PartialMessage<GetLedgerApiVersionResponse>): GetLedgerApiVersionResponse;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetLedgerApiVersionResponse): GetLedgerApiVersionResponse;
    internalBinaryWrite(message: GetLedgerApiVersionResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message com.daml.ledger.api.v2.GetLedgerApiVersionResponse
 */
export declare const GetLedgerApiVersionResponse: GetLedgerApiVersionResponse$Type;
declare class FeaturesDescriptor$Type extends MessageType<FeaturesDescriptor> {
    constructor();
    create(value?: PartialMessage<FeaturesDescriptor>): FeaturesDescriptor;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FeaturesDescriptor): FeaturesDescriptor;
    internalBinaryWrite(message: FeaturesDescriptor, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message com.daml.ledger.api.v2.FeaturesDescriptor
 */
export declare const FeaturesDescriptor: FeaturesDescriptor$Type;
declare class UserManagementFeature$Type extends MessageType<UserManagementFeature> {
    constructor();
    create(value?: PartialMessage<UserManagementFeature>): UserManagementFeature;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UserManagementFeature): UserManagementFeature;
    internalBinaryWrite(message: UserManagementFeature, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message com.daml.ledger.api.v2.UserManagementFeature
 */
export declare const UserManagementFeature: UserManagementFeature$Type;
declare class PartyManagementFeature$Type extends MessageType<PartyManagementFeature> {
    constructor();
    create(value?: PartialMessage<PartyManagementFeature>): PartyManagementFeature;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PartyManagementFeature): PartyManagementFeature;
    internalBinaryWrite(message: PartyManagementFeature, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message com.daml.ledger.api.v2.PartyManagementFeature
 */
export declare const PartyManagementFeature: PartyManagementFeature$Type;
declare class OffsetCheckpointFeature$Type extends MessageType<OffsetCheckpointFeature> {
    constructor();
    create(value?: PartialMessage<OffsetCheckpointFeature>): OffsetCheckpointFeature;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: OffsetCheckpointFeature): OffsetCheckpointFeature;
    internalBinaryWrite(message: OffsetCheckpointFeature, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
/**
 * @generated MessageType for protobuf message com.daml.ledger.api.v2.OffsetCheckpointFeature
 */
export declare const OffsetCheckpointFeature: OffsetCheckpointFeature$Type;
/**
 * @generated ServiceType for protobuf service com.daml.ledger.api.v2.VersionService
 */
export declare const VersionService: ServiceType;
export {};
//# sourceMappingURL=version_service.d.ts.map