import type { z } from 'zod';
import { baseOutPropertiesSchema, type SchemaInProperties, type SchemaLayerProperties } from './schema.js';
import { PropertiesImplementation as BasePropertiesImplementation, Properties as BaseProperties } from '@pmndrs/uikit-pub-sub';
import { Aliases } from './alias.js';
import { Conditionals } from './conditional.js';
import { ReadonlySignal, Signal } from '@preact/signals-core';
import { ComponentDefaultsProperties } from './defaults.js';
import { LayerInSectionIdentifier } from './layer.js';
export type BaseOutProperties = z.output<typeof baseOutPropertiesSchema> & ComponentDefaultsProperties;
export type UikitPropertyKeys = keyof BaseOutProperties;
export type WithSignal<T> = {
    [K in keyof T]: T[K] | ReadonlySignal<T[K]>;
};
export type InProperties<OutProperties extends BaseOutProperties = BaseOutProperties> = SchemaInProperties<OutProperties> & {};
export type Properties<OutProperties extends BaseOutProperties = BaseOutProperties> = BaseProperties<SchemaLayerProperties<OutProperties>, OutProperties> & {
    get usedConditionals(): {
        hover: Signal<boolean>;
        active: Signal<boolean>;
    };
    setLayersWithConditionals(layerInSectionIdentifier: LayerInSectionIdentifier, properties: InProperties<OutProperties> | undefined): void;
};
export declare class PropertiesImplementation<OutProperties extends BaseOutProperties = BaseOutProperties> extends BasePropertiesImplementation<SchemaLayerProperties<OutProperties>, OutProperties> implements Properties<OutProperties> {
    private readonly conditionals;
    readonly usedConditionals: {
        hover: Signal<boolean>;
        active: Signal<boolean>;
    };
    constructor(aliases: Aliases, conditionals: Conditionals, defaults?: WithSignal<OutProperties>);
    setLayersWithConditionals(layerInSectionIdentifier: LayerInSectionIdentifier, properties: InProperties<OutProperties> | undefined): void;
}
export { componentDefaults } from './defaults.js';
export type { AddAllAliases, GetAliases, AllAliases } from './alias.js';
export type { SchemaInProperties, SchemaLayerProperties, SchemaPropertyValue } from './schema.js';
export type { AbsoluteLengthValue, LengthValue, NumberOrPercentageValue, NumberString, NumberValue, PercentageString, PixelLengthString, ViewportLengthString, } from './values.js';
export { baseOutPropertyShape, baseOutPropertiesSchema, createInPropertiesSchema, defineSchema, absoluteLengthValueSchema, lengthValueSchema, numberValueSchema, numberOrPercentageValueSchema, numberStringSchema, percentageStringSchema, pixelLengthStringSchema, viewportLengthStringSchema, } from './schema.js';
