export type JsonObject = Record; export declare function asObject(value: unknown): JsonObject | undefined; export declare function readString(source: unknown, ...keys: string[]): string | undefined; /** * protobuf JSON serialises 64-bit integers as strings so they survive JSON's 2^53 limit, * so a numeric field can legitimately arrive as either a number or a decimal string. */ export declare function readNumber(source: unknown, ...keys: string[]): number | undefined; export declare function readBoolean(source: unknown, ...keys: string[]): boolean | undefined; export declare function readObject(source: unknown, ...keys: string[]): JsonObject | undefined; export declare function readArray(source: unknown, ...keys: string[]): unknown[]; export declare function readObjectArray(source: unknown, ...keys: string[]): JsonObject[]; export declare function readStringArray(source: unknown, ...keys: string[]): string[]; /** * protobuf JSON renders an enum as its full symbolic name (`STATUS_FAILED`), while Depot's * docs and CLI describe the same values unprefixed (`failed`). Strip the declaring prefix so * callers see one spelling. Numeric encodings need a per-enum table and are handled by `mapEnumNumber`. */ export declare function readEnum(source: unknown, keys: readonly string[], prefixes?: readonly string[]): string | undefined; export declare function mapEnumNumber(source: unknown, keys: readonly string[], table: Readonly>, prefixes?: readonly string[]): string | undefined; //# sourceMappingURL=shape.d.ts.map