import { type PartialWithUndefined } from '@augment-vir/common';
import { type CSSResult } from 'element-vir';
import { type SingleCssVarDefinition } from 'lit-css-vars';
/**
 * Create styles that look like an outline for the given selector.
 *
 * It is recommended to use the pseudo selector chain ":focus:focus-visible:not(:active)" to
 * preventing clicking an element from creating focus styles in Chrome.
 *
 * @category Styles
 */
export declare function createFocusStyles({ elementBorderSize, outlineGap, outlineWidth, noNesting, outlineColor, borderRadius, renderInside, }?: PartialWithUndefined<{
    /**
     * ElementBorderSize here is used to fix the outline when the element these styles are attached
     * to has a border. The dev must specify that border size here for the offsets to be calculated
     * correctly.
     */
    elementBorderSize: SingleCssVarDefinition | string;
    outlineGap: SingleCssVarDefinition | string;
    outlineWidth: SingleCssVarDefinition | string;
    borderRadius: SingleCssVarDefinition | string;
    outlineColor: SingleCssVarDefinition | string;
    noNesting: boolean;
    /** Render the focus outline inside the element instead of outside. */
    renderInside: boolean;
}>): CSSResult;
