import type { CamelCase } from 'type-fest'; import type { ScriptLocalization } from '../core/models/api/scriptLocalization'; import type { LocalizedScriptSchema } from '../types/localizedScriptSchema'; /** * Takes a {@link ScriptLocalization} and converts it into a schema with matching field names. * * E.g. * ```ts * const scriptLocalization = { * script: 'ja-Kana', * fields: { * firstName: 'アレキサンダー', * lastName: 'パトリック', * }, * } as const; * * const schema = mapApiScriptLocalizationToSchemaFields(scriptLocalization); * console.log(schema); * // { * // jaKanaFirstName: 'アレキサンダー', * // jaKanaLastName: 'パトリック' * // } * ``` * */ export declare function mapApiScriptLocalizationToSchemaFields(localization: ScriptLocalization): LocalizedScriptSchema>; /** * Given a schema and a script, takes the fields prefixed with that script and produces a {@link ScriptLocalization}. * * E.g. * ```ts * const schema = { * firstName: 'Alex', * lastName: 'Tompkins', * jaKanaFirstName: 'アレキサンダー', * jaKanaLastName: 'パトリック', * jaHaniFirstName: 'pretend this is hiragana', * jaHaniLastName: 'this too', * }; * * const localization = mapSchemaFieldsToApiScriptLocalization(schema, 'jaKana'); * console.log(localization); * // { * // script: 'ja-Kana', * // fields: { firstName: 'アレキサンダー', lastName: 'パトリック' }, * // }; * ``` */ export declare function mapSchemaFieldsToApiScriptLocalization(data: Schema, script: Script): ScriptLocalization, AddHyphenToScriptName