import { CellTemplateProp, ColumnDataSchemaModel, ColumnTemplateProp, HyperFunc, VNode } from '@revolist/revogrid';
import { Component } from 'svelte';
import { ReactiveProps } from './reactive-props.svelte';
export type SvelteCellProps = CellTemplateProp & {
    addition?: any;
    [key: string]: any;
};
export interface SvelteElement extends HTMLElement {
    _svelteTemplate?: RenderedComponent<any>;
}
export interface RenderedComponent<T extends Record<string, any>> {
    component: Component<T>;
    instance: Record<string, any>;
    props: ReactiveProps<T>;
    update: (newProps: T) => void;
    destroy: () => void;
}
export declare function SvelteTemplateConstructor<T extends Record<string, any>>(el: SvelteElement | null, SvelteComponent: Component<T>, initialProps: T, lastEl?: RenderedComponent<T> | null, context?: Map<any, any> | undefined): RenderedComponent<T> | null;
/**
 * Render a Svelte component in a RevoGrid column cell template.
 */
export declare const Template: <TProps extends Record<string, any> = SvelteCellProps>(SvelteComponent: Component<TProps>, customProps?: Partial<TProps>) => (h: HyperFunc<VNode>, p: ColumnDataSchemaModel | ColumnTemplateProp | CellTemplateProp, addition?: any) => VNode;
