Type Alias WaldiezState

WaldiezState: WaldiezStoreProps & {
    addAgent: (
        agentType: WaldiezAgentNodeType,
        position: { x: number; y: number },
        parentId?: string,
    ) => WaldiezAgentNode;
    addEdge: (source: string, target: string, hidden: boolean) => Edge;
    addGroupMember: (groupId: string, memberId: string) => void;
    addModel: () => WaldiezModelNode;
    addSkill: () => WaldiezSkillNode;
    changeGroup: (agentId: string, newGroupId: string) => void;
    cloneAgent: (id: string) => WaldiezAgentNode;
    cloneModel: (id: string) => WaldiezModelNode;
    cloneSkill: (id: string) => WaldiezSkillNode;
    deleteEdge: (id: string) => void;
    exportAgent: (
        agentId: string,
        skipLinks: boolean,
    ) => { [key: string]: unknown } | null;
    exportFlow: (hideSecrets: boolean) => { [key: string]: unknown };
    exportModel: (modelId: string) => { [key: string]: unknown } | null;
    exportSkill: (skillId: string) => { [key: string]: unknown } | null;
    get: typeOfGet;
    getAgentById: (id: string) => WaldiezAgentNode | null;
    getAgentConnections: (
        nodeId: string,
        options?: {
            skipManagers?: boolean;
            sourcesOnly?: boolean;
            targetsOnly?: boolean;
        },
    ) => {
        source: { edges: WaldiezEdge[]; nodes: WaldiezAgentNode[] };
        target: { edges: WaldiezEdge[]; nodes: WaldiezAgentNode[] };
    };
    getAgents: () => WaldiezAgentNode[];
    getEdgeById: (id: string) => Edge | null;
    getEdges: () => Edge[];
    getEdgeSourceAgent: (edge: Edge) => WaldiezAgentNode | null;
    getFlowEdges: () => [WaldiezEdge[], WaldiezEdge[]];
    getFlowInfo: () => WaldiezFlowInfo;
    getGroupMembers: (groupId: string) => WaldiezAgentNode[];
    getModelById: (id: string) => WaldiezModelNode | null;
    getModels: () => WaldiezModelNode[];
    getNodes: () => Node[];
    getRfInstance: () => ReactFlowInstance | undefined;
    getSkillById: (id: string) => WaldiezSkillNode | null;
    getSkills: () => WaldiezSkillNode[];
    getViewport: () => Viewport | undefined;
    importAgent: (
        agent: { [key: string]: unknown },
        agentId: string,
        skipLinks: boolean,
        position: XYPosition | undefined,
    ) => WaldiezAgentNode;
    importFlow: (
        items: ThingsToImport,
        flowData: ImportedFlow,
        typeShown: WaldiezNodeType,
    ) => void;
    importModel: (
        model: { [key: string]: unknown },
        modelId: string,
        position: XYPosition | undefined,
    ) => WaldiezModelNode;
    importSkill: (
        skillData: { [key: string]: unknown },
        skillId: string,
        position: XYPosition | undefined,
    ) => WaldiezSkillNode;
    onEdgeDoubleClick: (event: any, edge: Edge) => void;
    onEdgesChange: (changes: EdgeChange[]) => void;
    onFlowChanged: () => { [key: string]: unknown };
    onNodeDoubleClick: (event: any, node: Node) => void;
    onNodesChange: OnNodesChange;
    onReconnect: (oldEdge: Edge, newConnection: Connection) => void;
    onViewportChange: (viewport: Viewport, nodeType: WaldiezNodeType) => void;
    removeGroupMember: (groupId: string, memberId: string) => void;
    reselectNode: (nodeId: string) => void;
    saveFlow: () => void;
    setAgentGroup: (agentId: string, groupId: string | undefined) => void;
    setRfInstance: (instance: ReactFlowInstance) => void;
    updateAgentData: (id: string, data: Partial<WaldiezAgentNodeData>) => void;
    updateEdgeData: (id: string, data: Edge["data"]) => void;
    updateEdgePath: (id: string, agentType: WaldiezAgentNodeType) => void;
    updateEdgeType: (
        id: string,
        edgeType: "chat" | "nested" | "group" | "hidden",
    ) => void;
    updateFlow: (
        data: {
            description: string;
            name: string;
            requirements: string[];
            tags: string[];
        },
    ) => void;
    updateFlowOrder: (data: { id: string; order: number }[]) => void;
    updateModelData: (id: string, data: WaldiezModelNodeData) => void;
    updateSkillData: (id: string, data: WaldiezSkillNodeData) => void;
    deleteAgent(id: string): void;
    deleteModel(id: string): void;
    deleteSkill(id: string): void;
    showNodes(nodeType: WaldiezNodeType): void;
}