/**
 * @license
 * Copyright Tyler Technologies, Inc. 
 * License: Apache-2.0
 */
import { getFormState, getFormValue } from '../../constants';
import { BaseComponent } from '../../core/base/base-component';
import { IWithFocusable } from '../../core/mixins/focus/with-focusable';
import { IWithFormAssociation } from '../../core/mixins/form/with-form-associated';
import { IWithDefaultAria } from '../../core/mixins/internals/with-default-aria';
import { IWithElementInternals } from '../../core/mixins/internals/with-element-internals';
import { IWithLabelAwareness } from '../../core/mixins/label/with-label-aware';
import { FormValue } from '../../core/utils/form-utils';
import { RadioLabelPosition, RadioState, tryCheck } from './radio-constants';
export interface IRadioComponent extends IWithFormAssociation, IWithFocusable, IWithLabelAwareness, IWithElementInternals, IWithDefaultAria {
    checked: boolean;
    defaultChecked: boolean;
    value: string;
    required: boolean;
    dense: boolean;
    labelPosition: RadioLabelPosition;
}
declare global {
    interface HTMLElementTagNameMap {
        'forge-radio': IRadioComponent;
    }
}
declare const RadioComponent_base: import("../../constants").AbstractConstructor<import("../../core/mixins/form/with-form-associated").WithFormAssociationContract> & import("../../constants").AbstractConstructor<import("../../core/mixins/label/with-label-aware").WithLabelAwarenessContract> & import("../../constants").AbstractConstructor<import("../../core/mixins/focus/with-focusable").WithFocusableContract> & import("../../constants").AbstractConstructor<import("../../core/mixins/internals/with-default-aria").WithDefaultAriaContract> & import("../../constants").AbstractConstructor<import("../../core/mixins/internals/with-element-internals").WithElementInternalsContract> & typeof BaseComponent;
/**
 * @tag forge-radio
 *
 * @summary The Forge Radio component is used to create a form input where only one out of a set of
 * values should be selected.
 *
 * @property {boolean} checked - Indicates whether the radio button is checked.
 * @property {boolean} defaultChecked - Indicates whether the radio button is checked by default.
 * @property {string} value - The value of the radio button when submitted.
 * @property {boolean} dense - Indicates whether the radio button should be displayed in a dense layout.
 * @property {boolean} disabled - Indicates whether the radio button is disabled.
 * @property {boolean} required - Indicates whether the radio button is required.
 * @property {boolean} readonly - Indicates whether the radio button is read-only.
 * @property {RadioLabelPosition} labelPosition - The position of the radio button's label.
 *
 * @attribute {boolean} checked - Indicates whether the radio button is checked.
 * @attribute {boolean} default-checked - Indicates whether the radio button is checked by default.
 * @attribute {string} value - The value of the radio button when submitted.
 * @attribute {boolean} dense - Indicates whether the radio button should be displayed in a dense layout.
 * @attribute {boolean} disabled - Indicates whether the radio button is disabled.
 * @attribute {boolean} required - Indicates whether the radio button is required.
 * @attribute {boolean} readonly - Indicates whether the radio button is read-only.
 * @attribute {RadioLabelPosition} label-position - The position of the radio button's label.
 *
 * @cssproperty --forge-radio-primary-color - The primary color of the radio button when checked.
 * @cssproperty --forge-radio-inactive-color - The color of the radio button when unchecked.
 * @cssproperty --forge-radio-size - The size of the radio button in the inline and block directions.
 * @cssproperty --forge-radio-width - The width of the radio button.
 * @cssproperty --forge-radio-height - The height of the radio button.
 * @cssproperty --forge-radio-border-width - The width of the radio button's border.
 * @cssproperty --forge-radio-unchecked-border-color - The color of the radio button's border when unchecked.
 * @cssproperty --forge-radio-checked-border-color - The color of the radio button's border when checked.
 * @cssproperty --forge-radio-background - The background of the radio button.
 * @cssproperty --forge-radio-shape - The shape of the radio button.
 * @cssproperty --forge-radio-mark-size - The size of the radio button's mark in the inline and block directions.
 * @cssproperty --forge-radio-mark-width - The width of the radio button's mark.
 * @cssproperty --forge-radio-mark-height - The height of the radio button's mark.
 * @cssproperty --forge-radio-mark-unchecked-color - The color of the radio button's mark when unchecked.
 * @cssproperty --forge-radio-mark-checked-color - The color of the radio button's mark when checked.
 * @cssproperty --forge-radio-mark-unchecked-background - The background of the radio button's mark when unchecked.
 * @cssproperty --forge-radio-mark-checked-background - The background of the radio button's mark when checked.
 * @cssproperty --forge-radio-gap - The gap between the radio button and its label.
 * @cssproperty --forge-radio-justify - The alignment of the radio button and its label in the inline direction.
 * @cssproperty --forge-radio-direction - The direction of the radio button and its label.
 * @cssproperty --forge-radio-state-layer-size - The size of the radio button's state layer in the inline and block directions.
 * @cssproperty --forge-radio-state-layer-width - The width of the radio button's state layer.
 * @cssproperty --forge-radio-state-layer-height - The height of the radio button's state layer.
 * @cssproperty --forge-radio-state-layer-unchecked-color - The color of the radio button's state layer when unchecked.
 * @cssproperty --forge-radio-state-layer-checked-color - The color of the radio button's state layer when checked.
 * @cssproperty --forge-radio-state-layer-shape - The shape of the radio button's state layer.
 * @cssproperty --forge-radio-state-layer-dense-size - The size of the radio button's state layer when dense.
 * @cssproperty --forge-radio-state-layer-dense-width - The width of the radio button's state layer when dense.
 * @cssproperty --forge-radio-state-layer-dense-height - The height of the radio button's state layer when dense.
 * @cssproperty --forge-radio-disabled-opacity - The opacity of the radio button when disabled.
 * @cssproperty --forge-radio-animation-duration - The duration of the radio button's animations.
 * @cssproperty --forge-radio-animation-timing-function - The timing function of the radio button's animations.
 * @cssproperty --forge-radio-animation-delay - The delay of the radio button's animations.
 *
 * @csspart root - Styles the radio's root element.
 * @csspart background - Styles the border and background of the radio.
 * @csspart focus-indicator - Styles the focus indicator of the radio.
 * @csspart state-layer - Styles the state layer of the radio.
 *
 * @slot - This is a default/unnamed slot for the label text.
 */
export declare class RadioComponent extends RadioComponent_base implements IRadioComponent {
    static get observedAttributes(): string[];
    private _foundation;
    private _rootNode?;
    private _latestAssociatedForm?;
    constructor();
    connectedCallback(): void;
    disconnectedCallback(): void;
    attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
    [getFormValue](): FormValue | null;
    [getFormState](): RadioState;
    formAssociatedCallback(form: HTMLFormElement | null): void;
    formResetCallback(): void;
    formStateRestoreCallback(state: RadioState): void;
    labelClickedCallback(): void;
    labelChangedCallback(value: string | null): void;
    checked: boolean;
    defaultChecked: boolean;
    value: string;
    dense: boolean;
    disabled: boolean;
    required: boolean;
    readonly: boolean;
    labelPosition: RadioLabelPosition;
    [tryCheck](): boolean;
}
export {};
