import { OnInit, SimpleChanges } from "@angular/core";
import { EventEmitter } from "@angular/core";
import { BehaviorSubject } from "rxjs";
import { CssUtils } from "../utils";
import { BackgroundProviderService } from "../background-provider/service/background-provider.service";
import * as i0 from "@angular/core";
declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
declare type Margin = {
    top?: Space;
    bottom?: Space;
    left?: Space;
    right?: Space;
};
export declare class DxcRadioComponent implements OnInit {
    private utils;
    bgProviderService?: BackgroundProviderService;
    /**
     * If true, the radio is selected. If undefined the component will be uncontrolled and
     * the value will be managed internally by the component.
     */
    get checked(): boolean;
    set checked(value: boolean);
    private _checked;
    /**
     * Will be passed to the value attribute of the html input element. When inside a form,
     * this value will be only submitted if the radio is checked.
     */
    value: string;
    /**
     * Text to be placed next to the radio.
     */
    label: string;
    /**
     * Whether the label should appear after or before the radio.
     */
    labelPosition: "before" | "after";
    /**
     * Name attribute of the input element.
     */
    name: string;
    /**
     * If true, the component will be disabled.
     */
    get disabled(): boolean;
    set disabled(value: boolean);
    private _disabled;
    /**
     * If true, the radio will change its appearence, showing that the value is required.
     */
    get required(): boolean;
    set required(value: boolean);
    private _required;
    /**
     * This event will emit in case the user clicks the radio.
     * The new value will be passed as a parameter.
     */
    onChange: EventEmitter<boolean>;
    /**
     * Size of the margin to be applied to the component
     * ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
     * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in
     * order to specify different margin sizes.
     */
    margin: Space | Margin;
    /**
     * Size of the component.
     */
    size: "small" | "medium" | "large" | "fillParent" | "fitContent";
    className: any;
    darkBackground: boolean;
    lightBackground: boolean;
    renderedChecked: boolean;
    defaultInputs: BehaviorSubject<any>;
    sizes: {
        small: string;
        medium: string;
        large: string;
        fillParent: string;
        fitContent: string;
    };
    ngOnChanges(changes: SimpleChanges): void;
    constructor(utils: CssUtils, bgProviderService?: BackgroundProviderService);
    calculateWidth(inputs: any): string;
    ngOnInit(): void;
    onValueChange($event: any): void;
    setTextAlign(labelPosition: any): string;
    getDynamicStyle(inputs: any): string;
    getDarkStyle(): string;
    getLightStyle(): string;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DxcRadioComponent, [null, { optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DxcRadioComponent, "dxc-radio", never, { "checked": "checked"; "value": "value"; "label": "label"; "labelPosition": "labelPosition"; "name": "name"; "disabled": "disabled"; "required": "required"; "margin": "margin"; "size": "size"; }, { "onChange": "onChange"; }, never, never>;
}
export {};
//# sourceMappingURL=dxc-radio.component.d.ts.map