import type { PropertyValues } from 'lit';
import { BaseFormAssociatedElement } from './form-associated-element';
import './radio';
import type { WRadio } from './radio';
/**
 * @slot label - Alternative to the `label` attribute should you need custom HTML.
 */
export declare class WRadioGroup extends BaseFormAssociatedElement {
    static css: import("lit").CSSResult[];
    static get validators(): import("./form-associated-element").Validator<BaseFormAssociatedElement>[];
    private readonly hasSlotController;
    hasRadioButtons: boolean;
    defaultSlot: HTMLSlotElement;
    /**
     * The radio group's label. Required for proper accessibility. If you need to display HTML, use the `label` slot
     * instead.
     */
    label: string;
    /** The radio groups's hint. If you need to display HTML, use the `hint` slot instead. */
    hint: string;
    /** The name of the radio group, submitted as a name/value pair with form data. */
    name: string | null;
    /** Disables the radio group and all child radios. */
    disabled: boolean;
    /** The orientation in which to show radio items. */
    orientation: 'horizontal' | 'vertical';
    private _value;
    get value(): string | number | null;
    /** The current value of the radio group, submitted as a name/value pair with form data. */
    set value(val: string | number | null);
    /** The default value of the form control. Primarily used for resetting the form control. */
    defaultValue: string | null;
    /** The radio group's size. This size will be applied to all child radios and radio buttons, except when explicitly overridden. */
    size: 'small' | 'medium' | 'large';
    /** Ensures a child radio is checked before allowing the containing form to submit. */
    required: boolean;
    /**
     * Used for SSR. if true, will show slotted label on initial render.
     */
    withLabel: boolean;
    /**
     * Used for SSR. if true, will show slotted hint on initial render.
     */
    withHint: boolean;
    static shadowRootOptions: {
        delegatesFocus: boolean;
        mode: ShadowRootMode;
        serializable?: boolean;
        slotAssignment?: SlotAssignmentMode;
    };
    constructor();
    /**
     * We use the first available radio as the validationTarget similar to native HTML that shows the validation popup on
     * the first radio element.
     */
    get validationTarget(): WRadio;
    updated(changedProperties: PropertyValues<this>): void;
    formResetCallback(...args: Parameters<BaseFormAssociatedElement['formResetCallback']>): void;
    private handleRadioClick;
    private getAllRadios;
    private handleLabelClick;
    private syncRadioElements;
    private handleKeyDown;
    /** Sets focus on the radio group. */
    focus(options?: FocusOptions): void;
    render(): import("lit").TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'w-radio-group': WRadioGroup;
    }
}
