import type { UmbBlockDataValueModel, UmbBlockExposeModel, UmbBlockValueDataPropertiesBaseType } from '../types.js';
import type { UmbElementValueModel } from '../../../content/content/index.js';
import type { UmbPropertyValueResolver } from '../../../core/property/index.js';
export declare abstract class UmbBlockValueResolver<ValueType> implements UmbPropertyValueResolver<UmbElementValueModel<ValueType>, UmbBlockDataValueModel, UmbBlockExposeModel> {
    abstract processValues(property: UmbElementValueModel<ValueType>, valuesCallback: (values: Array<UmbBlockDataValueModel>) => Promise<Array<UmbBlockDataValueModel> | undefined>): Promise<UmbElementValueModel<ValueType>>;
    protected _processValueBlockData<ValueType extends UmbBlockValueDataPropertiesBaseType>(value: ValueType, valuesCallback: (values: Array<UmbBlockDataValueModel>) => Promise<Array<UmbBlockDataValueModel> | undefined>): Promise<ValueType & {
        contentData: {
            values: UmbBlockDataValueModel<unknown>[];
            key: string;
            contentTypeKey: string;
        }[];
        settingsData: {
            values: UmbBlockDataValueModel<unknown>[];
            key: string;
            contentTypeKey: string;
        }[];
    }>;
    abstract processVariants(property: UmbElementValueModel<ValueType>, variantsCallback: (values: Array<UmbBlockExposeModel>) => Promise<Array<UmbBlockExposeModel> | undefined>): Promise<UmbElementValueModel<ValueType>>;
    protected _processVariantBlockData<ValueType extends UmbBlockValueDataPropertiesBaseType>(value: ValueType, variantsCallback: (values: Array<UmbBlockExposeModel>) => Promise<Array<UmbBlockExposeModel> | undefined>): Promise<ValueType & {
        expose: UmbBlockExposeModel[];
    }>;
    compareVariants(a: UmbBlockExposeModel, b: UmbBlockExposeModel): boolean;
    destroy(): void;
}
