import type { Parent } from '../types/index.ts'; export declare const CODEC_TYPES: { VARINT: number; BIT64: number; LENGTH_DELIMITED: number; START_GROUP: number; END_GROUP: number; BIT32: number; }; export declare const codecTypes: Record; export declare const jsTypeOverrides: Record; export interface FieldOptions extends Record { proto3_optional?: boolean; jstype?: 'string' | 'number'; } export interface FieldDef { id: number; type: string; repeated?: boolean; options?: FieldOptions; rule?: string; oneof?: string[]; } export interface MessageField { /** * Return a string that can be used in a typescript interface for this field */ getInterfaceField(parent: Parent, indent?: string): string; } export declare class Field implements MessageField { id: number; name: string; optional: boolean; type: string; proto2Required: boolean; jsTypeOverride?: 'string' | 'number'; oneof?: string[]; constructor(name: string, def: FieldDef, parent: Parent); getInterfaceField(parent: Parent, indent?: string): string; getDefaultField(parent: Parent): string; getDecoder(parent: Parent): string; getStreamingDecoder(parent: Parent): string; getEncoder(parent: Parent): string; getLimitField(): string; } //# sourceMappingURL=field.d.ts.map