import { type HTMLAttributes } from "vue";
import { type BaseInteractiveProps, type LabelProps, type LinkableByIdProps, type TailwindClassProp } from "../shared/props.js";
type RealProps = LinkableByIdProps & BaseInteractiveProps & LabelProps & {
border?: boolean;
/** A value to display while recording. */
recordingValue?: string;
/** A title to display on the input div while recording. Is also used as the aria-description. */
recordingTitle?: string;
/**
* The recorder object is a series of event listeners to attach to the input div while recording is started. If you need to bind directly to the element, see the `binders` prop.
*
* The listeners are then unbound when recording is set to false again.
*
* Note that the component does not handle the setting of `recording` (unless the component is disabled), `modelValue`, or `recordingValue` at all and has no mechanism for cancelling a recording. It is left to the recorder listeners and any `recorder:*` handlers to determine what to do.
*/
recorder?: undefined | Record;
/** This provides a way to manually attach/remove event listeners to/from the element. It is an alternative to the `recorder` prop, see it for more details. Both cannot be specified at the same time.*/
binders?: undefined | {
bind: (el: HTMLElement) => void;
unbind: (el: HTMLElement) => void;
};
/** The id of the element. If not provided, the id will be generated automatically. */
id?: string;
};
interface Props extends
/** @vue-ignore */
Partial & TailwindClassProp>, RealProps {
}
declare const _default: import("vue").DefineComponent<{
recording?: boolean;
modelValue: string;
} & Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
"update:modelValue": (modelValue: string) => any;
"update:recording": (recording: boolean) => any;
} & {
"recorder:blur": ($event: FocusEvent) => any;
"recorder:click": (args_0: {
event: MouseEvent | KeyboardEvent;
indicator: HTMLElement;
input: HTMLInputElement;
}) => any;
"focus:parent": () => any;
}, string, import("vue").PublicProps, Readonly<{
recording?: boolean;
modelValue: string;
} & Props> & Readonly<{
"onUpdate:modelValue"?: ((modelValue: string) => any) | undefined;
"onRecorder:blur"?: (($event: FocusEvent) => any) | undefined;
"onRecorder:click"?: ((args_0: {
event: MouseEvent | KeyboardEvent;
indicator: HTMLElement;
input: HTMLInputElement;
}) => any) | undefined;
"onFocus:parent"?: (() => any) | undefined;
"onUpdate:recording"?: ((recording: boolean) => any) | undefined;
}>, {
disabled: boolean;
id: string;
readonly: boolean;
border: boolean;
unstyle: boolean;
recordingValue: string;
recordingTitle: string;
recorder: Record;
binders: {
bind: (el: HTMLElement) => void;
unbind: (el: HTMLElement) => void;
};
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
export default _default;
//# sourceMappingURL=LibRecorder.vue.d.ts.map