import { FlattenInterpolation, ThemeProps } from 'styled-components';

declare module '@devseed-ui/form' {
  export interface formSkinStylesProps {
    /**
     * Size of the form field
     * @default 'medium'
     */
    size?: 'small' | 'medium' | 'large' | 'xlarge';

    /**
     * Whether or not the value in this field is invalid.
     * @default false
     */
    invalid?: boolean

    /**
     * Whether or not the field is stressed.
     * A stressed input will animate to call attention. It is useful to notify
     * of errors.
     * @default false
     */
    stressed?: boolean
  }

  /**
   * Renders the css needed to style a form input
   *
   * @param params Same props as passed to a button component
   */
   function createFormSkinStyles(
    params: formSkinStylesProps,
  ): FlattenInterpolation<ThemeProps<formSkinStylesProps>>;
}