import React, { PropsWithChildren } from "react";
import { DIconInterface } from "../..";
/**
 * @description `DButton` 컴포넌트의 프로퍼티를 정의합니다. 버튼의 다양한 속성과 동작을 설정할 수 있습니다.
 */
export interface DButtonInterface extends PropsWithChildren, Omit<DIconInterface, "variant" | "className" | "onError"> {
    /**
     * @description Bootstrap에서 사용하는 버튼 변형 클래스. `button-${variant}` 형태의 값입니다.
     */
    variant?: string;
    /**
     * @description HTML 버튼 타입. `"button"`, `"submit"`, 또는 `"reset"`을 지정할 수 있습니다.
     */
    type?: "button" | "submit" | "reset";
    /**
     * @description 버튼의 추가 CSS 클래스입니다.
     */
    className?: string;
    /**
     * @description 버튼에 아이콘을 표시할 위치를 설정합니다. Bootstrap의 패턴을 사용합니다.
     */
    iconPosition?: "start" | "end";
    /**
     * @description 버튼의 크기를 설정합니다. Bootstrap의 `btn-${size}` 패턴을 사용합니다.
     */
    size?: "sm" | "lg";
    /**
     * @description 기본 아이콘 사용 여부를 설정합니다. `true`로 설정하면 기본 아이콘이 사용됩니다.
     */
    defaultIcon?: boolean;
    /**
     * @description Bootstrap  `button-outline-${variant}` 형태의 button을 표시합니다.
     */
    outline?: boolean;
    /**
     * @description WCAG 웹 접근성 표준을 준수하기 위한 음성 레이블입니다. 버튼에 대한 설명을 제공하여 스크린 리더에서 읽을 수 있게 합니다.
     */
    voiceLabel?: string;
}
/**
 * @description `DButton` 컴포넌트는 버튼에 아이콘을 추가하거나, 버튼의 스타일 및 동작을 설정할 수 있는 컴포넌트입니다.
 * @version 1.0
 * @author wang hee june
 * @example
 * ```tsx
 * <DButton icon="plus" iconPosition="start" variant="primary" size="lg">
 *     Add
 * </DButton>
 * ```
 */
export declare const DButton: React.ForwardRefExoticComponent<DButtonInterface & React.RefAttributes<HTMLButtonElement>>;
export default DButton;
