import type { Data } from './Data'; export interface Metadata { readonly id: string; get(): Readonly; get(path?: string | readonly string[], fallbackValue?: T): Readonly; set(path: string | readonly string[], value: unknown): this; push(path: string | readonly string[], values: unknown[]): this; unshift(path: string | readonly string[], values: unknown[]): this; assign(path: undefined | string | readonly string[], value: Data): this; defaults(path: undefined | string | readonly string[], value: Data): this; merge(path: undefined | string | readonly string[], value: Data): this; } export interface InvocationMetadata { readonly definition: Metadata; }