import { Field } from '../fields/field.ts'; import { Enum } from './enum.ts'; import type { EnumDef } from './enum.ts'; import type { Parent, Type } from './index.ts'; import type { FieldDef } from '../fields/field.ts'; import type { Flags } from '../index.ts'; interface StreamEvent { name: string; fields: string[]; type: 'field' | 'collection-primitive-member' | 'collection-message-member-field' | 'sub-message-field' | 'sub-message-collection-primitive-member' | 'sub-message-collection-message-member-field'; } export interface MessageDef { fields?: Record; oneofs?: Record; nested?: Record; } export declare function isMessageDef(obj?: any): obj is MessageDef; export declare class Message implements Type { pbType: string; jsType: string; fields: Field[]; oneOfs: string[][]; nested: Record; private def; private parent; constructor(pbType: string, jsType: string, def: MessageDef, parent: Parent); init(): void; findType(jsType: string, override?: 'string' | 'number'): Type; addImport(module: string, symbol: string, alias?: string): void; addTypeImport(module: string, symbol: string, alias?: string): void; addEslintIgnore(rule: string): void; get flags(): Flags; getDecoder(field: Field, indent?: string): string; getStreamingDecoder(field: Field, prefix: string, indent?: string): string; getEncoder(field: Field, accessor: string): string; getValueTest(field: Field): string; compile(parent: Parent, indent?: string): string; private createOneOfEncoding; private createOneOfDecoding; createDefaultObject(indent?: string): string; createLimitObject(): string; formatStreamEvents(streamEvents: StreamEvent[]): string; formatFields(fields: string[], delimiter?: string): string; getStreamEvents(fieldPrefix?: string): StreamEvent[]; } export {}; //# sourceMappingURL=message.d.ts.map