import typia from 'typia';
import type { SerializedEditorState } from 'lexical';
import type { CloneSource, CloneTarget, CloneRule, ApplySubtitleSource } from './common/index.ts';
export interface RpcMethods extends Record<string, [
    unknown,
    unknown
]> {
    "media/applySubtitles": [
        {
            source: ApplySubtitleSource;
            target: CloneTarget;
            lang?: string | null;
            templateId?: string;
            behavior: "replace" | "merge";
        },
        void
    ];
    "media/flushSource": [
        {
            asset: string;
        },
        void
    ];
    "asset/clone": [
        {
            source: CloneSource;
            target?: CloneTarget;
            clone?: {
                rules?: CloneRule[];
            };
            [key: string]: unknown;
        },
        string
    ];
    "asset/export": [
        {
            assets: string[];
        },
        NxtExport
    ];
    "asset/import": [
        {
            source?: NxtExport;
            mode?: NxtImportMode;
            selection?: string[];
        },
        Record<string, string>
    ];
    "script/yjsToLexical": [
        string,
        SerializedEditorState
    ];
    "script/lexicalToYjs": [
        SerializedEditorState,
        string
    ];
}
export type NxtImportMode = "seed" | "clone" | "overwrite";
export interface NxtExport {
    version: number;
    date?: string;
    root?: string[];
    assets: {
        [assetId: string]: {
            _children?: string[];
            [domain: string]: unknown;
        };
    };
    files?: string[];
}
export declare const assertGuardNxtExport: (input: unknown) => typia.AssertionGuard<NxtExport>;
export declare const assertGuardNxtImportMode: (input: unknown) => typia.AssertionGuard<NxtImportMode>;
