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 { ElementRef, TemplateRef } from '@angular/core'; import { FormGroup } from '@angular/forms'; import { MatFormFieldAppearance, FloatLabelType } from '@angular/material/form-field'; import { MatMenuTrigger } from '@angular/material/menu'; import { SdViewDefDirective } from '@sdcorejs/angular/forms/directives'; import { Size } from '@sdcorejs/utils/models'; interface SdTimeParts { readonly hour: number; readonly minute: number; } interface SdTimeConstraints { readonly min?: string | null; readonly max?: string | null; /** Minute increment. Non-positive and non-finite values disable step validation. */ readonly step?: number | null; } type SdTimeValidationError = 'time' | 'min' | 'max' | 'step'; /** Parses a time-only string without constructing a Date or applying a timezone. */ declare function sdParseTime(value: unknown): SdTimeParts | null; /** Converts a valid time-only value to the canonical `HH:mm` representation. */ declare function sdNormalizeTime(value: unknown): string | null; /** Returns minutes since midnight for ordering and range validation. */ declare function sdTimeToMinutes(value: unknown): number | null; /** Validates syntax, inclusive boundaries, and minute-step alignment. */ declare function sdValidateTime(value: unknown, constraints?: SdTimeConstraints): SdTimeValidationError | null; interface SdTimePickerAdapter { toPickerValue(value: string | null | undefined): TPickerValue; fromPickerValue(value: TPickerValue): string | null; } /** * Bridges the public time-only string contract to Date-based picker controls. * The fixed date never escapes this adapter, so timezone/calendar data cannot * leak into the model. */ declare class SdDateTimePickerAdapter implements SdTimePickerAdapter { toPickerValue(value: string | null | undefined): Date; fromPickerValue(value: Date): string | null; } type SdTimeModelValue = string | null | undefined; /** * Edits a timezone-free time of day and emits valid values as canonical `HH:mm` strings. * Invalid typed text remains in the control without replacing the last valid model. */ declare class SdTime { #private; readonly id: string; readonly inputRef: _angular_core.Signal | undefined>; readonly menuTrigger: _angular_core.Signal; readonly sdLabelTemplate: _angular_core.Signal | undefined>; readonly sdValueTemplate: _angular_core.Signal | undefined>; readonly sdViewDef: _angular_core.Signal | undefined>; readonly autoIdInput: _angular_core.InputSignal; readonly autoId: _angular_core.Signal; readonly name: _angular_core.InputSignal; readonly form: _angular_core.InputSignalWithTransform | undefined, _SdFormControlParent>; readonly label: _angular_core.InputSignal; readonly ariaLabel: _angular_core.InputSignal; readonly helperText: _angular_core.InputSignal; readonly placeholder: _angular_core.InputSignal; readonly size: _angular_core.InputSignal; readonly appearanceInput: _angular_core.InputSignal; readonly appearance: _angular_core.Signal; readonly floatLabel: _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 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 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 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; protected readonly pickerDraft: _angular_core.WritableSignal; preparePicker(): void; onPickerValue(value: Date): void; applyPicker(): void; cancelPicker(): void; open(): void; focus(): void; clear(event?: Event): void; onFocus(): void; onBlur(): void; stepBy(direction: 1 | -1, event: KeyboardEvent): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } export { SdDateTimePickerAdapter, SdTime, sdNormalizeTime, sdParseTime, sdTimeToMinutes, sdValidateTime }; export type { SdTimeConstraints, SdTimeModelValue, SdTimeParts, SdTimePickerAdapter, SdTimeValidationError };