///
import { Event, Listener } from '@yandex-int/messenger.utils';
import type { Context } from './Context';
import { StateGetter } from './StateGetter';
export declare type Provider
= (props: P) => R;
export declare type Provider1
= (props: P, state: S1) => R;
export declare type GetTypeOfEvent = E extends Event ? R : unknown;
export declare type GetEventListenerType = Listener>;
declare type EmptyCallback = () => void;
declare type ListenerFn = (this: N, ev: HTMLElementEventMap[keyof HTMLElementEventMap]) => any;
export declare class Ref {
private context;
refId: string;
node?: HTMLElement;
detached: boolean;
private className?;
private style?;
private innerText?;
private listeners;
private childrens;
private effects;
private subscriptions;
constructor(context: Context);
get id(): string;
useClassName(provider: Provider
, deps: Array): string;
useClassName(provider: Provider1, deps: Array, s1: StateGetter): string;
useStyle(provider: Provider>, deps: Array): string;
useStyle(provider: Provider1>, deps: Array, s1: StateGetter): string;
useText(provider: Provider, deps: Array): string;
useText(provider: Provider1, deps: Array, s1: StateGetter): string;
useChildren(provider: Provider>, deps: Array): string;
useChildren(provider: Provider1>, deps: Array, s1: StateGetter): string;
useEffect(provider: Provider, deps: Array): void;
useEffect(provider: Provider1, deps: Array, s1: StateGetter): void;
on(type: K, listener: ListenerFn): void;
mount(): void;
private setNode;
private subscribe;
getNode(): HTMLElement | undefined;
remove(): void;
}
export {};