@karmaniverous/entity-tools
    Preparing search index...

    Type Alias EncodeDecodeAgreement<T>

    EncodeDecodeAgreement: {
        [K in keyof T]-?: K extends string
            ? [EncodeParam<T[K]>] extends [never]
                ? MissingEncodeError<K>
                : [DecodeReturn<T[K]>] extends [never]
                    ? MissingDecodeError<K>
                    : [EncodeParam<T[K]>] extends [DecodeReturn<T[K]>]
                        ? [DecodeReturn<T[K]>] extends [EncodeParam<T[K]>]
                            ? T[K]
                            : EncodeDecodeMismatchError<K, EncodeParam<T[K]>, DecodeReturn<T[K]>>
                        : EncodeDecodeMismatchError<K, EncodeParam<T[K]>, DecodeReturn<T[K]>>
            : T[K]
    }

    Ensures that for each entry K:

    • encode: (value: VK) => string
    • decode: (value: string) => VK and VK matches in both positions (bi-directionally).

    Type Parameters

    • T extends Record<string, { decode: (value: string) => unknown }>