import { ApplicationService } from '@adonisjs/core/types';
import { Component } from './component.js';
import ComponentContext from './component_context.js';
import { Checksum } from './checksum.js';
import type { Config } from './define_config.js';
import { Synth } from '../index.js';
export default class Livewire {
    app: ApplicationService;
    config: Config;
    components: Map<string, typeof Component>;
    checksum: Checksum;
    static FEATURES: any[];
    static PROPERTY_SYNTHESIZERS: Array<typeof Synth>;
    constructor(app: ApplicationService, config: Config);
    static componentHook(feature: any): void;
    componentHook(feature: any): void;
    static registerPropertySynthesizer(synth: typeof Synth | (typeof Synth)[]): void;
    registerPropertySynthesizer(synth: typeof Synth | (typeof Synth)[]): void;
    trigger(event: string, component: Component, ...params: any[]): Promise<(((...args: any[]) => Promise<void>) | undefined)[]>;
    static generateComponentData(component: Component): Record<string, any>;
    mount(name: string, params?: object, options?: {
        layout?: any;
        key?: string;
    }): Promise<string>;
    fromSnapshot(snapshot: any): Promise<readonly [Component, ComponentContext]>;
    new(name: string, id?: string | null): Promise<Component>;
    static extractRequestViewLocals(): {};
    static setOrUpdateComponentView(component: Component): void;
    protected hydrate(data: any, context: ComponentContext, path: string): Promise<any>;
    protected hydrateProperties(component: Component, data: {
        [key: string]: any;
    }, context: ComponentContext): Promise<void>;
    update(snapshot: any, updates: any, calls: any): Promise<readonly [any, {
        [key: string]: any;
    }]>;
    callMethods(component: Component, calls: any, context: ComponentContext): Promise<void>;
    getSynthesizerByKey(key: string, context: ComponentContext, path: string): Synth;
    getSynthesizerByTarget(target: any, context: ComponentContext, path: string): Synth;
    propertySynth(keyOrTarget: any, context: ComponentContext, path: string): Synth;
    dehydrate(target: any, context: ComponentContext, path: string): Promise<any>;
    dehydrateProperties(component: any, context: ComponentContext): Promise<{}>;
    snapshot(component: any, context?: any): Promise<any>;
    protected updateProperties(component: Component, updates: any, data: any, context: ComponentContext): Promise<void>;
    render(component: Component, defaultValue?: string): Promise<string | undefined>;
    component(name: string, component: typeof Component): Map<string, typeof Component>;
    insertAttributesIntoHtmlRoot(html: string, attributes: {
        [key: string]: string;
    }): string;
    buildSingleFileComponent(name: string, livewireViewPath: string): Promise<typeof Component | undefined>;
}
