import { SdTimeConstraints, SdTime, SdTimeModelValue } from '@sdcorejs/angular/forms/time'; import * as _sdcorejs_angular_forms_models from '@sdcorejs/angular/forms/models'; import { ɵSdFormControlParent as _SdFormControlParent, SdViewed, SdViewedInput, SdFormControl } from '@sdcorejs/angular/forms/models'; import * as _angular_core from '@angular/core'; import { TemplateRef } from '@angular/core'; import { FormGroup } from '@angular/forms'; import { SdViewDefDirective } from '@sdcorejs/angular/forms/directives'; import { Size } from '@sdcorejs/utils/models'; interface SdTimeRangeValue { readonly from?: string | null; readonly to?: string | null; } interface SdTimeRangeConstraints extends SdTimeConstraints { readonly required?: boolean; readonly allowOpenEnded?: boolean; } type SdTimeRangeValidationError = 'required' | 'incomplete' | 'fromTime' | 'fromMin' | 'fromMax' | 'fromStep' | 'toTime' | 'toMin' | 'toMax' | 'toStep' | 'range'; /** Normalizes both endpoints while retaining explicit open-ended null values. */ declare function sdNormalizeTimeRange(value: SdTimeRangeValue | null | undefined): SdTimeRangeValue | null; /** Validates endpoint syntax, openness, shared boundaries, step, and ordering. */ declare function sdValidateTimeRange(value: SdTimeRangeValue | null | undefined, constraints?: SdTimeRangeConstraints): SdTimeRangeValidationError | null; type SdTimeRangeModelValue = SdTimeRangeValue | null | undefined; /** * Composes two `SdTime` editors into one timezone-free range model. * Endpoint and aggregate validation are surfaced through the group state. */ declare class SdTimeRange { #private; readonly fromName: string; readonly toName: string; readonly sdLabelTemplate: _angular_core.Signal | undefined>; readonly sdValueTemplate: _angular_core.Signal | undefined>; readonly sdViewDef: _angular_core.Signal | undefined>; readonly fromTime: _angular_core.Signal; readonly toTime: _angular_core.Signal; readonly autoIdInput: _angular_core.InputSignal; readonly autoId: _angular_core.Signal; readonly fromAutoId: _angular_core.Signal; readonly toAutoId: _angular_core.Signal; readonly fromAriaLabel: _angular_core.Signal; readonly toAriaLabel: _angular_core.Signal; readonly groupAriaLabel: _angular_core.Signal; readonly name: _angular_core.InputSignal; readonly form: _angular_core.InputSignalWithTransform | undefined, _SdFormControlParent>; readonly label: _angular_core.InputSignal; readonly helperText: _angular_core.InputSignal; readonly fromPlaceholder: _angular_core.InputSignal; readonly toPlaceholder: _angular_core.InputSignal; readonly size: _angular_core.InputSignal; readonly min: _angular_core.InputSignal; readonly max: _angular_core.InputSignal; readonly stepInput: _angular_core.InputSignalWithTransform; readonly step: _angular_core.Signal; readonly required: _angular_core.InputSignalWithTransform; readonly allowOpenEnded: _angular_core.InputSignalWithTransform; readonly clearable: _angular_core.InputSignalWithTransform; readonly disabled: _angular_core.InputSignalWithTransform; readonly readonly: _angular_core.InputSignalWithTransform; readonly viewed: _angular_core.InputSignalWithTransform; readonly hideInlineError: _angular_core.InputSignalWithTransform; readonly inlineError: _angular_core.InputSignal; readonly hyperlink: _angular_core.InputSignal; readonly valueModel: _angular_core.ModelSignal; readonly sdChange: _angular_core.OutputEmitterRef; readonly sdFocus: _angular_core.OutputEmitterRef; readonly sdBlur: _angular_core.OutputEmitterRef; readonly fromValue: _angular_core.WritableSignal; readonly toValue: _angular_core.WritableSignal; readonly formControl: SdFormControl; readonly connectorState: _angular_core.Signal<_sdcorejs_angular_forms_models.ɵSdFormControlConnectorState>; readonly isViewed: _angular_core.Signal; readonly isInline: _angular_core.Signal; readonly isReadonly: _angular_core.Signal; readonly viewTemplate: _angular_core.Signal | undefined>; readonly displayValue: _angular_core.Signal; readonly showClear: _angular_core.Signal; readonly endpointInvalid: _angular_core.Signal; readonly dataDisabled: _angular_core.Signal<"true" | "false">; readonly dataInvalid: _angular_core.Signal<"true" | "false">; readonly dataEmpty: _angular_core.Signal<"true" | "false">; readonly dataValue: _angular_core.Signal; readonly dataRequired: _angular_core.Signal<"true" | "false">; readonly dataErrorMessage: _angular_core.Signal; readonly errorMessage: _angular_core.Signal; constructor(); onFromChange(value: SdTimeModelValue): void; onToChange(value: SdTimeModelValue): void; onFocus(): void; onBlur(): void; clear(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } export { SdTimeRange, sdNormalizeTimeRange, sdValidateTimeRange }; export type { SdTimeRangeConstraints, SdTimeRangeModelValue, SdTimeRangeValidationError, SdTimeRangeValue };