import type { Character } from "../../../nlcore/elements/character";
import type { GameState } from "../../gameState";
import { Sentence } from "../../../nlcore/elements/character/sentence";
import { Word } from "../../../nlcore/elements/character/word";
import { Pausing } from "../../../nlcore/elements/character/pause";
import React from "react";
export interface SayElementProps {
    action: {
        sentence: Sentence | null;
        character: Character | null;
        words: Word<Pausing | string>[] | null;
        id?: string;
    };
    /**
     * @deprecated
     * Callback function to be called when the player triggers the next action
     */
    onClick?: (skiped?: boolean) => void;
    onFinished?: (skiped?: boolean) => void;
    useTypeEffect?: boolean;
    gameState: GameState;
}
export interface IDialogProps {
}
export type DialogProps = {
    children: React.ReactNode;
} & React.HTMLAttributes<HTMLDivElement>;
export type DialogElementProps = {
    children?: never;
} & React.HTMLAttributes<HTMLDivElement>;
export interface IDialogElementProps extends React.HTMLAttributes<HTMLDivElement> {
    children?: never;
}
export declare enum DialogStateType {
    Pending = "pending",
    Paused = "paused",
    Ended = "ended"
}
export interface DialogContext {
    gameState: GameState;
    action: {
        sentence: Sentence | null;
        character: Character | null;
        words: Word<Pausing | string>[] | null;
    };
    state: DialogStateType;
}
export type DialogAction = {
    sentence: Sentence | null;
    character: Character | null;
    words: Word<Pausing | string>[] | null;
    id?: string;
};
