import type { Version } from './content-source';
import type { FieldType, Field, FieldForType, FieldSpecificProps, FieldSpecificPropsForType } from './model-fields';
import type { StackbitConfig } from './config';
import type { AssetFileField, AssetFileFieldLocalized } from './content-source-document';
import type { DocumentField, DocumentFieldForType, DocumentFieldLocalized, DocumentFieldNonLocalizedForType } from './content-source-document-fields';
export declare function loadJSON(filePath: string): Promise<any>;
export declare function getInterfaceVersion(): Promise<any>;
export declare function getVersion(options?: {
    packageJsonPath?: string;
    contentSourceVersion?: string;
}): Promise<Version>;
export declare function isLocalizedField(field: DocumentField | AssetFileField): field is DocumentFieldLocalized | AssetFileFieldLocalized;
/**
 * Returns non-localized version of a DocumentField for the provided `locale`.
 * If the `field` is localized, and the provided locale is not present, this
 * function returns `undefined`. If the `field` is not localized, this function
 * returns the `field` as-is ignoring the `locale`.
 *
 * @example Passing localized field
 * getLocalizedFieldForLocale({
 *   type: 'string',
 *   localized: true,
 *   locales: {
 *       en-US: { value: 'Hello' },
 *       es-ES: { value: 'Hola' },
 *       fr-FR: { value: 'Bonjour' }
 *   }
 * }, 'es-ES');
 * returns:
 * {
 *   type: 'string',
 *   value: 'Hola'
 * }
 *
 * @example Passing non-localized field
 * getLocalizedFieldForLocale({
 *   type: 'string',
 *   value: 'Hello'
 * });
 * returns:
 * {
 *   type: 'string',
 *   value: 'Hello'
 * }
 *
 * @param field
 * @param locale
 */
export declare function getLocalizedFieldForLocale<Type extends FieldType>(field?: DocumentFieldForType<Type>, locale?: string): DocumentFieldNonLocalizedForType<Type> | undefined;
export declare function isOneOfFieldTypes<T extends FieldType>(fieldType: FieldType, fieldTypes: ReadonlyArray<T>): fieldType is T;
export declare function isModelFieldOneOfFieldTypes<T extends FieldType>(modelField: Field, fieldTypes: ReadonlyArray<T>): modelField is FieldForType<T>;
export declare function isModelFieldSpecificPropsOneOfFieldTypes<T extends FieldType>(modelField: FieldSpecificProps, fieldTypes: ReadonlyArray<T>): modelField is FieldSpecificPropsForType<T>;
export declare function isDocumentFieldOneOfFieldTypes<T extends FieldType>(documentField: DocumentField, fieldTypes: ReadonlyArray<T>): documentField is DocumentFieldForType<T>;
export declare function defineStackbitConfig(stackbitConfig: StackbitConfig): StackbitConfig;
//# sourceMappingURL=utils.d.ts.map