/**
 * ------------------------------------------------
 *  # Setup: Props
 * ------------------------------------------------
 */
export type DsgButtonTheme = "brand" | "brand-secondary" | "brand-tertiary" | "brand-link" | "destructive" | "destructive-secondary" | "destructive-tertiary" | "destructive-link" | "gray" | "gray-secondary" | "gray-tertiary" | "gray-link";
export type DsgButtonSize = "sm" | "md" | "lg" | "xl" | "2xl";
export type DsgButtonWidth = "auto" | "full";
export type DsgButtonType = "button" | "submit" | "reset";
export type DsgButtonTargetUri = "_blank" | "_self" | "_parent" | "_top" | "framename";
export interface DsgButtonProps {
    label?: string;
    type?: DsgButtonType;
    theme?: DsgButtonTheme;
    size?: DsgButtonSize;
    disabled?: boolean;
    iconBefore?: string | null;
    iconAfter?: string | null;
    width?: DsgButtonWidth;
    uri?: string | null;
    targetUri?: DsgButtonTargetUri;
    preventDefault?: boolean;
}
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: {
        'dsg-button--icon-before'?(_: {}): any;
        'dsg-button--icon-after'?(_: {}): any;
    };
    refs: {
        dsgButtonEl: unknown;
    };
    rootEl: any;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: import('vue').DefineComponent<DsgButtonProps, {
    focusButton: (focus: boolean) => void;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
    "button-clicked": (clickEvent: Event) => any;
}, string, import('vue').PublicProps, Readonly<DsgButtonProps> & Readonly<{
    "onButton-clicked"?: ((clickEvent: Event) => any) | undefined;
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
    dsgButtonEl: unknown;
}, any>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
