import { type ButtonHTMLAttributes, type InputHTMLAttributes, type VNode } from 'vue';
import type { ComponentProps } from 'vue-component-type-helpers';
import PfButton from '../Button.vue';
import type { RouteLocationRaw } from 'vue-router';
import { type OUIAProps } from '../../helpers/ouia';
import type { Placement } from '../../helpers/FloatingUi.vue';
interface Props extends OUIAProps, /* @vue-ignore */ ButtonHTMLAttributes {
/** The color of the label outline/fill */
color?: 'blue' | 'teal' | 'green' | 'orange' | 'purple' | 'red' | 'orangered' | 'grey' | 'yellow';
/** Variant of the label. */
variant?: 'outline' | 'filled' | 'add';
/** Status of the label with a respective icon and color. Overrides the color set by the color property. */
status?: 'success' | 'warning' | 'danger' | 'info' | 'custom';
/** Position of the tooltip which is displayed if text is truncated */
tooltipPosition?: Placement;
/** vue-router destination for a label that is a router-link. If present, the label will change to an anchor element. */
to?: RouteLocationRaw;
/** Href for a label that is a link. If present, the label will change to an anchor element. This should not be passed in if the onClick prop is also passed in. */
href?: string;
/** Flag for the outline variant, same as variant="outline". */
outline?: boolean;
/** Flag indicating the label is compact. */
compact?: boolean;
/** Flag indicating the label is disabled. Works only on clickable labels, so either href, to or onClick must be passed in. */
disabled?: boolean;
/** Flag indicating if the label is an overflow label. */
overflow?: boolean;
/** Flag indicating the label is editable. Click or press enter or space to start editing it. */
editable?: boolean;
/** Additional attributes for the editable label button and text input, like aria-label. */
editableAttrs?: InputHTMLAttributes;
/** The max width of the label before it is truncated. Can be any valid CSS unit, such as '100%', '100px', or '16ch'. */
textMaxWidth?: string;
/** Aria label for close button. Defaults to "Close" followed by the label text. */
closeBtnAriaLabel?: string;
/** Additional attributes for the default close button. */
closeBtnAttrs?: ComponentProps;
/** Callback for when the close button is clicked. If present, the label will have a close button. */
onClose?: (e: Event) => void;
/** Callback for when the label is clicked. This should not be passed in if the href or editable props are also passed in. */
onClick?: (e: PointerEvent) => void;
}
declare const _default: typeof __VLS_export;
export default _default;
declare const __VLS_export: __VLS_WithSlots any;
editCancel: (event: KeyboardEvent, previousText: string) => any;
}, string, import("vue").PublicProps, Readonly & Readonly<{
onEditComplete?: ((event: KeyboardEvent | MouseEvent, newText: string) => any) | undefined;
onEditCancel?: ((event: KeyboardEvent, previousText: string) => any) | undefined;
}>, {
color: "red" | "orangered" | "orange" | "yellow" | "green" | "teal" | "blue" | "purple" | "grey";
variant: "add" | "filled" | "outline";
tooltipPosition: Placement;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
default?: (props?: Record) => VNode[];
icon?: (props?: Record) => VNode[];
actions?: (props?: Record) => VNode[];
}>;
type __VLS_WithSlots = T & {
new (): {
$slots: S;
};
};
//# sourceMappingURL=Label.vue.d.ts.map