import * as React from "react";
import * as PropTypes from "prop-types";
import { Props as TextInputProps } from "../TextInput/TextInput";
import "./CopyableInput.less";
import "../less/forms.less";
export interface Props extends TextInputProps {
    className?: string;
    enableCopy?: boolean;
    onClickCopy?: () => void;
}
interface State {
    copied: boolean;
    hidden: boolean;
}
/**
 * This is a text input that takes optional props
 * enableShow and enableCopy that allow the user
 * to show/hide and copy the value of the input.
 */
export declare class CopyableInput extends React.Component<Props, State> {
    static propTypes: {
        className: PropTypes.Requireable<string>;
        enableCopy: PropTypes.Requireable<boolean>;
        required: PropTypes.Requireable<boolean>;
        size: PropTypes.Requireable<string>;
        onClickCopy: PropTypes.Requireable<(...args: any[]) => any>;
        autoComplete: PropTypes.Requireable<string>;
        disabled: PropTypes.Requireable<boolean>;
        disableAutocomplete: PropTypes.Requireable<boolean>;
        enableShow: PropTypes.Requireable<boolean>;
        error: PropTypes.Requireable<string>;
        hideButtonText: PropTypes.Requireable<string>;
        label: PropTypes.Requireable<string>;
        name: PropTypes.Validator<string>;
        onChange: PropTypes.Requireable<(...args: any[]) => any>;
        onKeyDown: PropTypes.Requireable<(...args: any[]) => any>;
        onKeyPress: PropTypes.Requireable<(...args: any[]) => any>;
        onKeyUp: PropTypes.Requireable<(...args: any[]) => any>;
        onFocus: PropTypes.Requireable<(...args: any[]) => any>;
        onBlur: PropTypes.Requireable<(...args: any[]) => any>;
        optional: PropTypes.Requireable<boolean>;
        placeholder: PropTypes.Requireable<string>;
        placeholderCaps: PropTypes.Requireable<boolean>;
        readOnly: PropTypes.Requireable<boolean>;
        requiredText: PropTypes.Requireable<string>;
        showButtonText: PropTypes.Requireable<string>;
        type: PropTypes.Requireable<string>;
        value: PropTypes.Requireable<PropTypes.ReactNodeLike>;
    };
    static defaultProps: {
        enableCopy: boolean;
        required: boolean;
        size: "fullWidth";
    };
    constructor(props: Props);
    toggleHidden(): void;
    copyPassword(): void;
    render(): JSX.Element;
}
export {};
