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 "../protobuf/duration.js";
export interface ErrorInfo {
    reason: string;
    domain: string;
    metadata: {
        [key: string]: string;
    };
}
export interface RetryInfo {
    retryDelay?: Duration;
}
export interface DebugInfo {
    stackEntries: string[];
    detail: string;
}
export interface QuotaFailure {
    violations: QuotaFailure_Violation[];
}
export interface QuotaFailure_Violation {
    subject: string;
    description: string;
}
export interface PreconditionFailure {
    violations: PreconditionFailure_Violation[];
}
export interface PreconditionFailure_Violation {
    type: string;
    subject: string;
    description: string;
}
export interface BadRequest {
    fieldViolations: BadRequest_FieldViolation[];
}
export interface BadRequest_FieldViolation {
    field: string;
    description: string;
    reason: string;
    localizedMessage?: LocalizedMessage;
}
export interface RequestInfo {
    requestId: string;
    servingData: string;
}
export interface ResourceInfo {
    resourceType: string;
    resourceName: string;
    owner: string;
    description: string;
}
export interface Help {
    links: Help_Link[];
}
export interface Help_Link {
    description: string;
    url: string;
}
export interface LocalizedMessage {
    locale: string;
    message: string;
}
declare class ErrorInfo$Type extends MessageType<ErrorInfo> {
    constructor();
    create(value?: PartialMessage<ErrorInfo>): ErrorInfo;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ErrorInfo): ErrorInfo;
    private binaryReadMap3;
    internalBinaryWrite(message: ErrorInfo, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
export declare const ErrorInfo: ErrorInfo$Type;
declare class RetryInfo$Type extends MessageType<RetryInfo> {
    constructor();
    create(value?: PartialMessage<RetryInfo>): RetryInfo;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RetryInfo): RetryInfo;
    internalBinaryWrite(message: RetryInfo, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
export declare const RetryInfo: RetryInfo$Type;
declare class DebugInfo$Type extends MessageType<DebugInfo> {
    constructor();
    create(value?: PartialMessage<DebugInfo>): DebugInfo;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DebugInfo): DebugInfo;
    internalBinaryWrite(message: DebugInfo, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
export declare const DebugInfo: DebugInfo$Type;
declare class QuotaFailure$Type extends MessageType<QuotaFailure> {
    constructor();
    create(value?: PartialMessage<QuotaFailure>): QuotaFailure;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: QuotaFailure): QuotaFailure;
    internalBinaryWrite(message: QuotaFailure, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
export declare const QuotaFailure: QuotaFailure$Type;
declare class QuotaFailure_Violation$Type extends MessageType<QuotaFailure_Violation> {
    constructor();
    create(value?: PartialMessage<QuotaFailure_Violation>): QuotaFailure_Violation;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: QuotaFailure_Violation): QuotaFailure_Violation;
    internalBinaryWrite(message: QuotaFailure_Violation, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
export declare const QuotaFailure_Violation: QuotaFailure_Violation$Type;
declare class PreconditionFailure$Type extends MessageType<PreconditionFailure> {
    constructor();
    create(value?: PartialMessage<PreconditionFailure>): PreconditionFailure;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PreconditionFailure): PreconditionFailure;
    internalBinaryWrite(message: PreconditionFailure, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
export declare const PreconditionFailure: PreconditionFailure$Type;
declare class PreconditionFailure_Violation$Type extends MessageType<PreconditionFailure_Violation> {
    constructor();
    create(value?: PartialMessage<PreconditionFailure_Violation>): PreconditionFailure_Violation;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: PreconditionFailure_Violation): PreconditionFailure_Violation;
    internalBinaryWrite(message: PreconditionFailure_Violation, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
export declare const PreconditionFailure_Violation: PreconditionFailure_Violation$Type;
declare class BadRequest$Type extends MessageType<BadRequest> {
    constructor();
    create(value?: PartialMessage<BadRequest>): BadRequest;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: BadRequest): BadRequest;
    internalBinaryWrite(message: BadRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
export declare const BadRequest: BadRequest$Type;
declare class BadRequest_FieldViolation$Type extends MessageType<BadRequest_FieldViolation> {
    constructor();
    create(value?: PartialMessage<BadRequest_FieldViolation>): BadRequest_FieldViolation;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: BadRequest_FieldViolation): BadRequest_FieldViolation;
    internalBinaryWrite(message: BadRequest_FieldViolation, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
export declare const BadRequest_FieldViolation: BadRequest_FieldViolation$Type;
declare class RequestInfo$Type extends MessageType<RequestInfo> {
    constructor();
    create(value?: PartialMessage<RequestInfo>): RequestInfo;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RequestInfo): RequestInfo;
    internalBinaryWrite(message: RequestInfo, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
export declare const RequestInfo: RequestInfo$Type;
declare class ResourceInfo$Type extends MessageType<ResourceInfo> {
    constructor();
    create(value?: PartialMessage<ResourceInfo>): ResourceInfo;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ResourceInfo): ResourceInfo;
    internalBinaryWrite(message: ResourceInfo, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
export declare const ResourceInfo: ResourceInfo$Type;
declare class Help$Type extends MessageType<Help> {
    constructor();
    create(value?: PartialMessage<Help>): Help;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Help): Help;
    internalBinaryWrite(message: Help, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
export declare const Help: Help$Type;
declare class Help_Link$Type extends MessageType<Help_Link> {
    constructor();
    create(value?: PartialMessage<Help_Link>): Help_Link;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Help_Link): Help_Link;
    internalBinaryWrite(message: Help_Link, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
export declare const Help_Link: Help_Link$Type;
declare class LocalizedMessage$Type extends MessageType<LocalizedMessage> {
    constructor();
    create(value?: PartialMessage<LocalizedMessage>): LocalizedMessage;
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: LocalizedMessage): LocalizedMessage;
    internalBinaryWrite(message: LocalizedMessage, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter;
}
export declare const LocalizedMessage: LocalizedMessage$Type;
export {};
