import { Field } from '@stackbit/types';
import * as StackbitTypes from '@stackbit/types';
import { ModelWithContext } from './sanity-schema-converter';
export declare function resolveLabelFieldForModel(model: any, modelLabelFieldPath: string, fields: Field[]): string;
export declare function getSanityAliasFieldType({ resolvedType, model, modelFieldPath }: {
    resolvedType: string;
    model: ModelWithContext;
    modelFieldPath: string[];
}): string;
export declare function resolvedFieldType({ sanityFieldType, model, modelFieldPath }: {
    sanityFieldType: string;
    model: ModelWithContext;
    modelFieldPath: string[];
}): string;
export declare function isLocalizedModelField(modelField: StackbitTypes.Field | StackbitTypes.FieldListItems): boolean | undefined;
export interface FieldListMultiItem {
    type: 'list';
    items: StackbitTypes.FieldListItems | StackbitTypes.FieldListItems[];
}
/**
 * Sanity 'Array' field type can hold multiple field types.
 *
 * For example, Sanity Arrays can simultaneously include items of `model`
 * and `reference` types. https://www.sanity.io/docs/array-type#wT47gyCx
 *
 * With that, Sanity Arrays cannot include both primitive and complex types:
 * https://www.sanity.io/docs/array-type#fNBIr84P
 *
 * TODO:
 * This is not yet supported by Stackbit's TypeScript types, so the `any`
 * must be used. Additionally, if a Sanity array has multiple types of items one
 * of which is the 'object' type, then it will also have the 'name' property to
 * allow matching 'object' items to their types. The 'name' property is not
 * supported in Stackbit list items, so '@ts-ignore' is used.
 *
 * However, Stackbit client app should be able to render this types of lists correctly.
 *
 * @example A list that can include items of type 'model', 'reference' and 'object'.
 * {
 *     type: 'list',
 *     items: [{
 *         type: 'model',
 *         models: [...]
 *     }, {
 *         type: 'reference',
 *         models: [...]
 *     }, {
 *         type: 'object',
 *         name: 'nested_object_name',
 *         fields: {...}
 *     }]
 * }
 */
export declare function getItemTypeForListItem(listItem: any, fieldModel: FieldListMultiItem): StackbitTypes.FieldListItems | null;
export declare function typeIsPrimitive(type: string): type is 'string' | 'number' | 'boolean';
//# sourceMappingURL=utils.d.ts.map