import { Entity, IEngine, ISchema, MaterialComponentDefinitionExtended, PBMaterial, PBVideoPlayer, AnimatorComponentDefinitionExtended, TransformComponentExtended, LastWriteWinElementSetComponentDefinition, PBAvatarAttach, PBVisibilityComponent, PBGltfContainer, PBUiTransform, PBUiText, PBUiBackground, MeshRendererComponentDefinitionExtended, PBBillboard, NameType, PBTween, PBTweenSequence, PBPointerEvents, NetworkEntity, SyncComponents, AudioSourceComponentDefinitionExtended, PBUiInput, PBUiInputResult, PBUiCanvasInformation } from '@dcl/ecs';
import { ComponentName, TweenType, InterpolationType, ActionType, TriggerType, TriggerConditionType, TriggerConditionOperation, AlignMode, Font, Colliders, ProximityLayer, AdminPermissions, MediaSource } from './enums';
export declare const LIVEKIT_STREAM_SRC = "livekit-video://current-stream";
export * from './enums';
export * from './action-types';
export * from './events';
export * from './id';
export * from './states';
export * from './clone';
export * from './lww';
export * from './types';
export declare const ActionSchemas: {
    play_animation: ISchema<import("@dcl/ecs").MapResult<{
        animation: ISchema<string>;
        loop: ISchema<boolean | undefined>;
    }>>;
    stop_animation: ISchema<import("@dcl/ecs").MapResult<{}>>;
    set_state: ISchema<import("@dcl/ecs").MapResult<{
        state: ISchema<string>;
    }>>;
    start_tween: ISchema<import("@dcl/ecs").MapResult<{
        type: ISchema<TweenType>;
        end: ISchema<import("@dcl/ecs").Vector3Type>;
        interpolationType: ISchema<InterpolationType>;
        duration: ISchema<number>;
        relative: ISchema<boolean>;
    }>>;
    set_counter: ISchema<import("@dcl/ecs").MapResult<{
        counter: ISchema<number>;
    }>>;
    increment_counter: ISchema<import("@dcl/ecs").MapResult<{
        amount: ISchema<number | undefined>;
    }>>;
    decrease_counter: ISchema<import("@dcl/ecs").MapResult<{
        amount: ISchema<number | undefined>;
    }>>;
    play_sound: ISchema<import("@dcl/ecs").MapResult<{
        src: ISchema<string>;
        loop: ISchema<boolean | undefined>;
        volume: ISchema<number | undefined>;
        global: ISchema<boolean | undefined>;
    }>>;
    stop_sound: ISchema<import("@dcl/ecs").MapResult<{}>>;
    set_visibility: ISchema<import("@dcl/ecs").MapResult<{
        visible: ISchema<boolean>;
        physicsCollider: ISchema<boolean | undefined>;
        collider: ISchema<Colliders | undefined>;
    }>>;
    attach_to_player: ISchema<import("@dcl/ecs").MapResult<{
        anchorPointId: ISchema<number>;
    }>>;
    detach_from_player: ISchema<import("@dcl/ecs").MapResult<{}>>;
    play_video_stream: ISchema<import("@dcl/ecs").MapResult<{
        src: ISchema<string | undefined>;
        loop: ISchema<boolean | undefined>;
        volume: ISchema<number | undefined>;
        dclCast: ISchema<boolean | undefined>;
    }>>;
    stop_video_stream: ISchema<import("@dcl/ecs").MapResult<{}>>;
    play_audio_stream: ISchema<import("@dcl/ecs").MapResult<{
        url: ISchema<string>;
        volume: ISchema<number | undefined>;
    }>>;
    stop_audio_stream: ISchema<import("@dcl/ecs").MapResult<{}>>;
    teleport_player: ISchema<import("@dcl/ecs").MapResult<{
        x: ISchema<number>;
        y: ISchema<number>;
    }>>;
    move_player: ISchema<import("@dcl/ecs").MapResult<{
        position: ISchema<import("@dcl/ecs").Vector3Type>;
        cameraTarget: ISchema<import("@dcl/ecs").Vector3Type | undefined>;
    }>>;
    play_default_emote: ISchema<import("@dcl/ecs").MapResult<{
        emote: ISchema<string>;
    }>>;
    play_custom_emote: ISchema<import("@dcl/ecs").MapResult<{
        src: ISchema<string>;
        loop: ISchema<boolean | undefined>;
    }>>;
    open_link: ISchema<import("@dcl/ecs").MapResult<{
        url: ISchema<string>;
    }>>;
    show_text: ISchema<import("@dcl/ecs").MapResult<{
        text: ISchema<string>;
        hideAfterSeconds: ISchema<number>;
        font: ISchema<Font>;
        fontSize: ISchema<number | undefined>;
        textAlign: ISchema<AlignMode>;
    }>>;
    hide_text: ISchema<import("@dcl/ecs").MapResult<{}>>;
    start_delay: ISchema<import("@dcl/ecs").MapResult<{
        actions: ISchema<string[]>;
        timeout: ISchema<number>;
    }>>;
    stop_delay: ISchema<import("@dcl/ecs").MapResult<{
        action: ISchema<string>;
    }>>;
    start_loop: ISchema<import("@dcl/ecs").MapResult<{
        actions: ISchema<string[]>;
        interval: ISchema<number>;
    }>>;
    stop_loop: ISchema<import("@dcl/ecs").MapResult<{
        action: ISchema<string>;
    }>>;
    clone_entity: ISchema<import("@dcl/ecs").MapResult<{
        position: ISchema<import("@dcl/ecs").Vector3Type>;
    }>>;
    remove_entity: ISchema<import("@dcl/ecs").MapResult<{}>>;
    show_image: ISchema<import("@dcl/ecs").MapResult<{
        src: ISchema<string>;
        align: ISchema<AlignMode>;
        height: ISchema<number>;
        width: ISchema<number>;
        hideAfterSeconds: ISchema<number | undefined>;
        text: ISchema<string | undefined>;
        fontSize: ISchema<number | undefined>;
    }>>;
    hide_image: ISchema<import("@dcl/ecs").MapResult<{
        imageEntity: ISchema<number | undefined>;
    }>>;
    damage: ISchema<import("@dcl/ecs").MapResult<{
        radius: ISchema<number>;
        layer: ISchema<ProximityLayer | undefined>;
        hits: ISchema<number | undefined>;
    }>>;
    move_player_here: ISchema<import("@dcl/ecs").MapResult<{}>>;
    place_on_player: ISchema<import("@dcl/ecs").MapResult<{}>>;
    rotate_as_player: ISchema<import("@dcl/ecs").MapResult<{}>>;
    place_on_camera: ISchema<import("@dcl/ecs").MapResult<{}>>;
    rotate_as_camera: ISchema<import("@dcl/ecs").MapResult<{}>>;
    set_position: ISchema<import("@dcl/ecs").MapResult<{
        x: ISchema<number>;
        y: ISchema<number>;
        z: ISchema<number>;
        relative: ISchema<boolean | undefined>;
    }>>;
    set_rotation: ISchema<import("@dcl/ecs").MapResult<{
        x: ISchema<number>;
        y: ISchema<number>;
        z: ISchema<number>;
        relative: ISchema<boolean | undefined>;
    }>>;
    set_scale: ISchema<import("@dcl/ecs").MapResult<{
        x: ISchema<number>;
        y: ISchema<number>;
        z: ISchema<number>;
        relative: ISchema<boolean | undefined>;
    }>>;
    follow_player: ISchema<import("@dcl/ecs").MapResult<{
        speed: ISchema<number>;
        x: ISchema<boolean>;
        y: ISchema<boolean>;
        z: ISchema<boolean>;
        minDistance: ISchema<number>;
    }>>;
    stop_following_player: ISchema<import("@dcl/ecs").MapResult<{}>>;
    random: ISchema<import("@dcl/ecs").MapResult<{
        actions: ISchema<string[]>;
    }>>;
    batch: ISchema<import("@dcl/ecs").MapResult<{
        actions: ISchema<string[]>;
    }>>;
    heal_player: ISchema<import("@dcl/ecs").MapResult<{
        multiplier: ISchema<number>;
    }>>;
    claim_airdrop: ISchema<import("@dcl/ecs").MapResult<{}>>;
};
export type ActionPayload<T extends ActionType = any> = T extends keyof typeof ActionSchemas ? (typeof ActionSchemas)[T] extends ISchema ? ReturnType<(typeof ActionSchemas)[T]['deserialize']> : {} : {};
export declare function getComponent<T>(componentName: string, engine: IEngine): LastWriteWinElementSetComponentDefinition<T>;
export declare function getComponents(engine: IEngine): {
    Actions: LastWriteWinElementSetComponentDefinition<import("@dcl/ecs").MapResult<{
        id: ISchema<number>;
        value: ISchema<import("@dcl/ecs").MapResult<{
            name: ISchema<string>;
            type: ISchema<string>;
            jsonPayload: ISchema<string>;
            allowedInBasicView: ISchema<boolean | undefined>;
            basicViewId: ISchema<string | undefined>;
            default: ISchema<boolean | undefined>;
        }>[]>;
    }>>;
    States: LastWriteWinElementSetComponentDefinition<import("@dcl/ecs").MapResult<{
        id: ISchema<number>;
        value: ISchema<string[]>;
        defaultValue: ISchema<string | undefined>;
        currentValue: ISchema<string | undefined>;
        previousValue: ISchema<string | undefined>;
    }>>;
    Counter: LastWriteWinElementSetComponentDefinition<import("@dcl/ecs").MapResult<{
        id: ISchema<number>;
        value: ISchema<number>;
    }>>;
    Triggers: LastWriteWinElementSetComponentDefinition<import("@dcl/ecs").MapResult<{
        value: ISchema<import("@dcl/ecs").MapResult<{
            type: ISchema<TriggerType>;
            conditions: ISchema<import("@dcl/ecs").MapResult<{
                id: ISchema<number | undefined>;
                type: ISchema<TriggerConditionType>;
                value: ISchema<string>;
            }>[] | undefined>;
            operation: ISchema<TriggerConditionOperation | undefined>;
            actions: ISchema<import("@dcl/ecs").MapResult<{
                id: ISchema<number | undefined>;
                name: ISchema<string | undefined>;
            }>[]>;
            basicViewId: ISchema<string | undefined>;
        }>[]>;
    }>>;
    CounterBar: LastWriteWinElementSetComponentDefinition<import("@dcl/ecs").MapResult<{
        primaryColor: ISchema<string | undefined>;
        secondaryColor: ISchema<string | undefined>;
        maxValue: ISchema<number | undefined>;
    }>>;
    AdminTools: LastWriteWinElementSetComponentDefinition<import("@dcl/ecs").MapResult<{
        adminPermissions: ISchema<AdminPermissions>;
        authorizedAdminUsers: ISchema<import("@dcl/ecs").MapResult<{
            me: ISchema<boolean>;
            sceneOwners: ISchema<boolean>;
            allowList: ISchema<boolean>;
            adminAllowList: ISchema<string[]>;
        }>>;
        moderationControl: ISchema<import("@dcl/ecs").MapResult<{
            isEnabled: ISchema<boolean>;
            kickCoordinates: ISchema<import("@dcl/ecs").MapResult<{
                x: ISchema<number>;
                y: ISchema<number>;
                z: ISchema<number>;
            }>>;
            allowNonOwnersManageAdminAllowList: ISchema<boolean>;
        }>>;
        textAnnouncementControl: ISchema<import("@dcl/ecs").MapResult<{
            isEnabled: ISchema<boolean>;
            playSoundOnEachAnnouncement: ISchema<boolean>;
            showAuthorOnEachAnnouncement: ISchema<boolean>;
        }>>;
        videoControl: ISchema<import("@dcl/ecs").MapResult<{
            isEnabled: ISchema<boolean>;
            disableVideoPlayersSound: ISchema<boolean>;
            showAuthorOnVideoPlayers: ISchema<boolean>;
            linkAllVideoPlayers: ISchema<boolean>;
            videoPlayers: ISchema<import("@dcl/ecs").MapResult<{
                entity: ISchema<number>;
                customName: ISchema<string>;
            }>[] | undefined>;
        }>>;
        smartItemsControl: ISchema<import("@dcl/ecs").MapResult<{
            isEnabled: ISchema<boolean>;
            linkAllSmartItems: ISchema<boolean>;
            smartItems: ISchema<import("@dcl/ecs").MapResult<{
                entity: ISchema<number>;
                customName: ISchema<string>;
                defaultAction: ISchema<string>;
            }>[] | undefined>;
        }>>;
        rewardsControl: ISchema<import("@dcl/ecs").MapResult<{
            isEnabled: ISchema<boolean>;
            rewardItems: ISchema<import("@dcl/ecs").MapResult<{
                entity: ISchema<number>;
                customName: ISchema<string>;
            }>[] | undefined>;
        }>>;
    }>>;
    VideoScreen: LastWriteWinElementSetComponentDefinition<import("@dcl/ecs").MapResult<{
        thumbnail: ISchema<string>;
        defaultMediaSource: ISchema<MediaSource>;
        defaultURL: ISchema<string>;
    }>>;
    Rewards: LastWriteWinElementSetComponentDefinition<import("@dcl/ecs").MapResult<{
        campaignId: ISchema<string>;
        dispenserKey: ISchema<string>;
        testMode: ISchema<boolean>;
    }>>;
    TextAnnouncements: LastWriteWinElementSetComponentDefinition<import("@dcl/ecs").MapResult<{
        text: ISchema<string>;
        author: ISchema<string | undefined>;
        id: ISchema<string>;
    }>>;
    VideoControlState: LastWriteWinElementSetComponentDefinition<import("@dcl/ecs").MapResult<{
        endsAt: ISchema<number | undefined>;
        streamKey: ISchema<string | undefined>;
    }>>;
};
export declare function createComponents(engine: IEngine): {
    ActionTypes: import("@dcl/ecs").MapComponentDefinition<import("@dcl/ecs").MapResult<{
        value: ISchema<import("@dcl/ecs").MapResult<{
            type: ISchema<string>;
            jsonSchema: ISchema<string>;
        }>[]>;
    }>>;
    Actions: import("@dcl/ecs").MapComponentDefinition<import("@dcl/ecs").MapResult<{
        id: ISchema<number>;
        value: ISchema<import("@dcl/ecs").MapResult<{
            name: ISchema<string>;
            type: ISchema<string>;
            jsonPayload: ISchema<string>;
            allowedInBasicView: ISchema<boolean | undefined>;
            basicViewId: ISchema<string | undefined>;
            default: ISchema<boolean | undefined>;
        }>[]>;
    }>>;
    Counter: import("@dcl/ecs").MapComponentDefinition<import("@dcl/ecs").MapResult<{
        id: ISchema<number>;
        value: ISchema<number>;
    }>>;
    Triggers: import("@dcl/ecs").MapComponentDefinition<import("@dcl/ecs").MapResult<{
        value: ISchema<import("@dcl/ecs").MapResult<{
            type: ISchema<TriggerType>;
            conditions: ISchema<import("@dcl/ecs").MapResult<{
                id: ISchema<number | undefined>;
                type: ISchema<TriggerConditionType>;
                value: ISchema<string>;
            }>[] | undefined>;
            operation: ISchema<TriggerConditionOperation | undefined>;
            actions: ISchema<import("@dcl/ecs").MapResult<{
                id: ISchema<number | undefined>;
                name: ISchema<string | undefined>;
            }>[]>;
            basicViewId: ISchema<string | undefined>;
        }>[]>;
    }>>;
    States: import("@dcl/ecs").MapComponentDefinition<import("@dcl/ecs").MapResult<{
        id: ISchema<number>;
        value: ISchema<string[]>;
        defaultValue: ISchema<string | undefined>;
        currentValue: ISchema<string | undefined>;
        previousValue: ISchema<string | undefined>;
    }>>;
    CounterBar: import("@dcl/ecs").MapComponentDefinition<import("@dcl/ecs").MapResult<{
        primaryColor: ISchema<string | undefined>;
        secondaryColor: ISchema<string | undefined>;
        maxValue: ISchema<number | undefined>;
    }>>;
    AdminTools: import("@dcl/ecs").MapComponentDefinition<import("@dcl/ecs").MapResult<{
        adminPermissions: ISchema<AdminPermissions>;
        authorizedAdminUsers: ISchema<import("@dcl/ecs").MapResult<{
            me: ISchema<boolean>;
            sceneOwners: ISchema<boolean>;
            allowList: ISchema<boolean>;
            adminAllowList: ISchema<string[]>;
        }>>;
        moderationControl: ISchema<import("@dcl/ecs").MapResult<{
            isEnabled: ISchema<boolean>;
            kickCoordinates: ISchema<import("@dcl/ecs").MapResult<{
                x: ISchema<number>;
                y: ISchema<number>;
                z: ISchema<number>;
            }>>;
            allowNonOwnersManageAdminAllowList: ISchema<boolean>;
        }>>;
        textAnnouncementControl: ISchema<import("@dcl/ecs").MapResult<{
            isEnabled: ISchema<boolean>;
            playSoundOnEachAnnouncement: ISchema<boolean>;
            showAuthorOnEachAnnouncement: ISchema<boolean>;
        }>>;
        videoControl: ISchema<import("@dcl/ecs").MapResult<{
            isEnabled: ISchema<boolean>;
            disableVideoPlayersSound: ISchema<boolean>;
            showAuthorOnVideoPlayers: ISchema<boolean>;
            linkAllVideoPlayers: ISchema<boolean>;
            videoPlayers: ISchema<import("@dcl/ecs").MapResult<{
                entity: ISchema<number>;
                customName: ISchema<string>;
            }>[] | undefined>;
        }>>;
        smartItemsControl: ISchema<import("@dcl/ecs").MapResult<{
            isEnabled: ISchema<boolean>;
            linkAllSmartItems: ISchema<boolean>;
            smartItems: ISchema<import("@dcl/ecs").MapResult<{
                entity: ISchema<number>;
                customName: ISchema<string>;
                defaultAction: ISchema<string>;
            }>[] | undefined>;
        }>>;
        rewardsControl: ISchema<import("@dcl/ecs").MapResult<{
            isEnabled: ISchema<boolean>;
            rewardItems: ISchema<import("@dcl/ecs").MapResult<{
                entity: ISchema<number>;
                customName: ISchema<string>;
            }>[] | undefined>;
        }>>;
    }>>;
    Rewards: import("@dcl/ecs").MapComponentDefinition<import("@dcl/ecs").MapResult<{
        campaignId: ISchema<string>;
        dispenserKey: ISchema<string>;
        testMode: ISchema<boolean>;
    }>>;
    TextAnnouncements: import("@dcl/ecs").MapComponentDefinition<import("@dcl/ecs").MapResult<{
        text: ISchema<string>;
        author: ISchema<string | undefined>;
        id: ISchema<string>;
    }>>;
    VideoControlState: import("@dcl/ecs").MapComponentDefinition<import("@dcl/ecs").MapResult<{
        endsAt: ISchema<number | undefined>;
        streamKey: ISchema<string | undefined>;
    }>>;
    VideoScreen: import("@dcl/ecs").MapComponentDefinition<import("@dcl/ecs").MapResult<{
        thumbnail: ISchema<string>;
        defaultMediaSource: ISchema<MediaSource>;
        defaultURL: ISchema<string>;
    }>>;
};
export type EngineComponents = {
    Animator: AnimatorComponentDefinitionExtended;
    Transform: TransformComponentExtended;
    AudioSource: AudioSourceComponentDefinitionExtended;
    AvatarAttach: LastWriteWinElementSetComponentDefinition<PBAvatarAttach>;
    VisibilityComponent: LastWriteWinElementSetComponentDefinition<PBVisibilityComponent>;
    GltfContainer: LastWriteWinElementSetComponentDefinition<PBGltfContainer>;
    Material: MaterialComponentDefinitionExtended;
    MeshRenderer: MeshRendererComponentDefinitionExtended;
    VideoPlayer: LastWriteWinElementSetComponentDefinition<PBVideoPlayer>;
    UiTransform: LastWriteWinElementSetComponentDefinition<PBUiTransform>;
    UiText: LastWriteWinElementSetComponentDefinition<PBUiText>;
    UiBackground: LastWriteWinElementSetComponentDefinition<PBUiBackground>;
    UiInput: LastWriteWinElementSetComponentDefinition<PBUiInput>;
    UiInputResult: LastWriteWinElementSetComponentDefinition<PBUiInputResult>;
    UiCanvasInformation: LastWriteWinElementSetComponentDefinition<PBUiCanvasInformation>;
    Billboard: LastWriteWinElementSetComponentDefinition<PBBillboard>;
    Name: LastWriteWinElementSetComponentDefinition<NameType>;
    Tween: LastWriteWinElementSetComponentDefinition<PBTween>;
    TweenSequence: LastWriteWinElementSetComponentDefinition<PBTweenSequence>;
    PointerEvents: LastWriteWinElementSetComponentDefinition<PBPointerEvents>;
    NetworkEntity: typeof NetworkEntity;
    SyncComponents: typeof SyncComponents;
};
export declare function initComponents(engine: IEngine): void;
export declare function initVideoPlayerComponentMaterial(entity: Entity, { Material }: Pick<EngineComponents, 'Material'>, material?: PBMaterial | null): null | undefined;
export declare function getConditionTypesByComponentName(componentName: ComponentName): TriggerConditionType[];
export type Components = ReturnType<typeof createComponents>;
export type ActionTypesComponent = Components['ActionTypes'];
export type ActionTypes = ReturnType<ActionTypesComponent['schema']['deserialize']>;
export type ActionsComponent = Components['Actions'];
export type Actions = ReturnType<ActionsComponent['schema']['deserialize']>;
export type Action = Actions['value'][0];
export type CounterComponent = Components['Counter'];
export type Counter = ReturnType<CounterComponent['schema']['deserialize']>;
export type CounterBarComponent = Components['CounterBar'];
export type CounterBar = ReturnType<CounterBarComponent['schema']['deserialize']>;
export type TriggersComponent = Components['Triggers'];
export type Triggers = ReturnType<TriggersComponent['schema']['deserialize']>;
export type Trigger = Triggers['value'][0];
export type TriggerAction = Trigger['actions'][0];
export type TriggerCondition = Exclude<Trigger['conditions'], undefined>[0];
export type StatesComponent = Components['States'];
export type States = ReturnType<StatesComponent['schema']['deserialize']>;
export type AdminToolsComponent = Components['AdminTools'];
export type AdminTools = ReturnType<AdminToolsComponent['schema']['deserialize']>;
export type VideoScreenComponent = Components['VideoScreen'];
export type VideoScreen = ReturnType<VideoScreenComponent['schema']['deserialize']>;
export type RewardsComponent = Components['Rewards'];
export type Rewards = ReturnType<RewardsComponent['schema']['deserialize']>;
export type TextAnnouncementsComponent = Components['TextAnnouncements'];
export type TextAnnouncements = ReturnType<TextAnnouncementsComponent['schema']['deserialize']>;
export type VideoControlStateComponent = Components['VideoControlState'];
export type VideoControlState = ReturnType<VideoControlStateComponent['schema']['deserialize']>;
