import { FieldOptions, Type, WithoutLabel } from 'alinea/core';
import { RecordField } from 'alinea/core/field/RecordField';
import { ObjectField } from 'alinea/input/object';
import { TextField } from 'alinea/input/text';
import { ImageReference } from '../../picker/entry/EntryReference.js';
import { LinkField } from '../link/LinkField.js';
export interface MetadataOptions extends FieldOptions<Type.Infer<MetadataFields>> {
    inferTitleFrom?: string;
    inferDescriptionFrom?: string;
    inferImageFrom?: string;
}
export interface MetadataFields {
    title: TextField;
    description: TextField;
    openGraph: ObjectField<{
        title: TextField;
        image: LinkField<ImageReference>;
        description: TextField;
    }>;
}
export declare class MetadataField extends RecordField<Type.Infer<MetadataFields>, MetadataOptions & {
    fields: Type<MetadataFields>;
}> {
}
export declare function metadata(label?: string, options?: WithoutLabel<MetadataOptions>): MetadataField;
