import { FlattenSimpleInterpolation, InterpolationFunction } from 'styled-components';
import type { ThemeProps } from '../types';
import 'focus-visible';
export interface FocusProps {
    /**
     * Компонент в фокусе
     */
    focused?: boolean;
}
export interface OutlinedProps {
    /**
     * Добавить рамку при фокусе
     */
    outlined?: boolean;
}
type SynthesizeFocus = (ruleset: FlattenSimpleInterpolation, focused?: boolean) => FlattenSimpleInterpolation;
export interface OutlineProps {
    /**
     * Размер фокусной рамки
     */
    outlineSize?: string;
    /**
     * Отступ фокусной рамки от родителя
     */
    outlineOffset?: string;
    /**
     * Цвет фокусной рамки
     */
    outlineColor?: string;
    /**
     * Радиус фокусной рамки
     */
    outlineRadius?: string;
    /**
     * Пользовательская функция синтетического фокуса
     */
    synthesizeFocus?: SynthesizeFocus;
}
export declare const syntheticFocus: SynthesizeFocus;
/**
 * Миксин для добавления фокусной рамки к элементу через псевдоэлемент before
 * @param {FocusProps} props
 * @example
 * // Выведет фокусную рамку размером 2em, скруглением 5em, отступом 2em и цветом 'rebeccapurple'.
 * addFocus({
 *  outlineSize: '2em',
 *  outlineOffset: '2em',
 *  outlineRadius: '5em',
 *  outlineColor: 'rebeccapurple',
 * });
 * @example
 * // Выведет outline размером 4em, скруглением 10px 1px, без отступа и цветом 'greenyellow'.
 * addFocus({
 *  outlineSize: '4em',
 *  outlineOffset: '0',
 *  outlineRadius: '10em 1em',
 *  outlineColor: 'greenyellow',
 * });
 */
export declare const addFocus: InterpolationFunction<ThemeProps['theme'] & FocusProps & OutlinedProps & OutlineProps>;
export {};
