import type CSSObject from '../../Core/Renderer/CSSObject';
/**
 * The event object for the grid.
 */
export interface GridEvent<T, E extends Event = Event> {
    /**
     * The original browser event.
     */
    originalEvent?: E;
    /**
     * The target of the event.
     */
    target: T;
}
/**
 * The event listener for the grid.
 */
export interface GridEventListener {
    eventName: keyof HTMLElementEventMap;
    listener: EventListener;
}
/**
 * Parameters for the makeHTMLElement utils function.
 */
export interface MakeHTMLElementParameters {
    className?: string;
    id?: string;
    innerText?: string;
    innerHTML?: string;
    style?: Partial<CSSStyleDeclaration>;
}
/**
 * A style object or callback returning one.
 */
export type StyleValue<T> = CSSObject | ((this: T, target: T) => CSSObject);
/**
 * Creates a HTML element with the provided options.
 *
 * @param tagName
 * The tag name of the element.
 *
 * @param params
 * The parameters of the element.
 *
 * @param parent
 * The parent element.
 */
export declare function makeHTMLElement<T extends HTMLElement>(tagName: string, params?: MakeHTMLElementParameters, parent?: HTMLElement): T;
/**
 * Creates a div element with the provided class name and id.
 *
 * @param className
 * The class name of the div.
 *
 * @param id
 * The id of the element.
 */
export declare function makeDiv(className: string, id?: string): HTMLElement;
/**
 * Check if there's a possibility that the given string is an HTML
 * (contains '<').
 *
 * @param str
 * Text to verify.
 */
export declare function isHTML(str: string): boolean;
/**
 * Returns a string containing plain text format by removing HTML tags
 *
 * @param text
 * String to be sanitized
 *
 * @returns
 * Sanitized plain text string
 */
export declare function sanitizeText(text: string): string;
/**
 * Sets an element's content, checking whether it is HTML or plain text.
 * Should be used instead of element.innerText when the content can be HTML.
 *
 * @param element
 * Parent element where the content should be.
 *
 * @param content
 * Content to render.
 */
export declare function setHTMLContent(element: HTMLElement, content: string): void;
/**
 * Creates a proxy that, when reading a property, first returns the value
 * from the original options of a given entity; if it is not defined, it
 * falls back to the value from the defaults (default options), recursively
 * for nested objects. Setting values on the proxy will change the original
 * options object (1st argument), not the defaults (2nd argument).
 *
 * @param options
 * The specific options object.
 *
 * @param defaultOptions
 * The default options to fall back to.
 *
 * @returns
 * A proxy that provides merged access to options and defaults.
 */
export declare function createOptionsProxy<T extends object>(options: T, defaultOptions?: Partial<T>): T;
/**
 * Format text with placeholders. Used for lang texts.
 *
 * @param template The text template with placeholders
 * @param values Object containing values to replace placeholders
 * @returns Formatted text
 */
export declare function formatText(template: string, values: Record<string, string | number>): string;
/**
 * Resolves a style value that can be static or callback based.
 *
 * @param style
 * Style object or callback returning one.
 *
 * @param target
 * Runtime target used as callback context and first argument.
 *
 * @returns
 * A resolved style object or `undefined`.
 */
export declare function resolveStyleValue<T>(style?: StyleValue<T>, target?: T): (CSSObject | undefined);
/**
 * Resolves and merges style values in order.
 *
 * @param target
 * Runtime target used as callback context and first argument.
 *
 * @param styleValues
 * Style values to merge in order, where latter entries override former.
 *
 * @returns
 * Merged style object.
 */
export declare function mergeStyleValues<T>(target: T, ...styleValues: Array<(StyleValue<T> | undefined)>): CSSObject;
declare const _default: {
    readonly makeHTMLElement: typeof makeHTMLElement;
    readonly makeDiv: typeof makeDiv;
    readonly isHTML: typeof isHTML;
    readonly sanitizeText: typeof sanitizeText;
    readonly setHTMLContent: typeof setHTMLContent;
    readonly createOptionsProxy: typeof createOptionsProxy;
    readonly formatText: typeof formatText;
    readonly resolveStyleValue: typeof resolveStyleValue;
    readonly mergeStyleValues: typeof mergeStyleValues;
};
export default _default;
