/*
* Copyright 2026 Hypergiant Galactic Systems Inc. All rights reserved.
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. You may obtain a copy
* of the License at https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
* OF ANY KIND, either express or implied. See the License for the specific language
* governing permissions and limitations under the License.
*/
import { CoordinateSegmentProps } from "./types.js";
import "client-only";
import * as react_jsx_runtime13 from "react/jsx-runtime";
//#region src/components/coordinate-field/segment.d.ts
/**
* CoordinateSegment - A controlled input component for a single coordinate segment
*
* This component represents one editable part of a coordinate (e.g., degrees, minutes, direction).
* It handles character filtering, focus management, and keyboard navigation.
*
* Segment Types (determined by allowedChars):
* - Numeric: "[0-9\\-\\.]" - for DD degrees, DDM/DMS degrees/minutes/seconds
* - Directional: "[NSEW]" - for DDM/DMS direction indicators
* - Alphanumeric: "[0-9A-Z]" - for MGRS/UTM zone identifiers
*
* @param props - The coordinate segment props.
* @param props.value - Current value of the segment.
* @param props.onChange - Callback when the segment value changes.
* @param props.onFocus - Callback when the segment gains focus.
* @param props.onBlur - Callback when the segment loses focus.
* @param props.onKeyDown - Callback for key down events.
* @param props.placeholder - Placeholder text for the segment.
* @param props.maxLength - Maximum character length for the segment.
* @param props.className - Additional CSS class name.
* @param props.isDisabled - Whether the segment is disabled.
* @param props.isReadOnly - Whether the segment is read-only.
* @param props.allowedChars - Regex pattern for allowed characters.
* @param props.segmentRef - Ref for the segment input element.
* @param props.segmentIndex - Index of this segment within the coordinate field.
* @param props.totalSegments - Total number of segments in the coordinate field.
* @param props.onAutoAdvance - Callback to advance focus to the next segment.
* @param props.onAutoRetreat - Callback to retreat focus to the previous segment.
* @param props.pad - Padding value for width calculation.
* @param props.ariaLabel - Accessible label for the segment.
* @returns The coordinate segment input component.
*
* @example
* ```tsx
* // Numeric segment (latitude degrees)
*
* ```
*
* @example
* ```tsx
* // Directional segment (latitude direction)
*
* ```
*/
declare function CoordinateSegment({
value,
onChange,
onFocus,
onBlur,
onKeyDown,
placeholder,
maxLength,
className,
isDisabled,
isReadOnly,
allowedChars,
segmentRef,
segmentIndex,
totalSegments: _totalSegments,
onAutoAdvance,
onAutoRetreat,
pad,
ariaLabel
}: CoordinateSegmentProps): react_jsx_runtime13.JSX.Element;
//#endregion
export { CoordinateSegment };
//# sourceMappingURL=segment.d.ts.map