import { Z as ZodSchema, H as HandleFunction, R as RouterType, S as ServerFromRouter } from '../types-C-4BfX4k.js';
import 'electron';

declare const initIpc: {
    create(): {
        procedure: {
            input<TInput>(_schema?: ZodSchema<TInput> | undefined): {
                input<TInput_1>(_schema?: ZodSchema<TInput_1> | undefined): {
                    input<TInput_2>(_schema?: ZodSchema<TInput_2> | undefined): {
                        input<TInput_3>(_schema?: ZodSchema<TInput_3> | undefined): {
                            input<TInput_4>(_schema?: ZodSchema<TInput_4> | undefined): {
                                input<TInput_5>(_schema?: ZodSchema<TInput_5> | undefined): {
                                    input<TInput_6>(_schema?: ZodSchema<TInput_6> | undefined): {
                                        input<TInput_7>(_schema?: ZodSchema<TInput_7> | undefined): {
                                            input<TInput_8>(_schema?: ZodSchema<TInput_8> | undefined): {
                                                input<TInput_9>(_schema?: ZodSchema<TInput_9> | undefined): {
                                                    input<TInput_10>(_schema?: ZodSchema<TInput_10> | undefined): /*elided*/ any;
                                                    handle: <TResult>(handle: HandleFunction<TInput_9, TResult>) => {
                                                        handle: HandleFunction<TInput_9, TResult>;
                                                    };
                                                };
                                                handle: <TResult>(handle: HandleFunction<TInput_8, TResult>) => {
                                                    handle: HandleFunction<TInput_8, TResult>;
                                                };
                                            };
                                            handle: <TResult>(handle: HandleFunction<TInput_7, TResult>) => {
                                                handle: HandleFunction<TInput_7, TResult>;
                                            };
                                        };
                                        handle: <TResult>(handle: HandleFunction<TInput_6, TResult>) => {
                                            handle: HandleFunction<TInput_6, TResult>;
                                        };
                                    };
                                    handle: <TResult>(handle: HandleFunction<TInput_5, TResult>) => {
                                        handle: HandleFunction<TInput_5, TResult>;
                                    };
                                };
                                handle: <TResult>(handle: HandleFunction<TInput_4, TResult>) => {
                                    handle: HandleFunction<TInput_4, TResult>;
                                };
                            };
                            handle: <TResult>(handle: HandleFunction<TInput_3, TResult>) => {
                                handle: HandleFunction<TInput_3, TResult>;
                            };
                        };
                        handle: <TResult>(handle: HandleFunction<TInput_2, TResult>) => {
                            handle: HandleFunction<TInput_2, TResult>;
                        };
                    };
                    handle: <TResult>(handle: HandleFunction<TInput_1, TResult>) => {
                        handle: HandleFunction<TInput_1, TResult>;
                    };
                };
                handle: <TResult>(handle: HandleFunction<TInput, TResult>) => {
                    handle: HandleFunction<TInput, TResult>;
                };
            };
            handle: <TResult>(handle: HandleFunction<void, TResult>) => {
                handle: HandleFunction<void, TResult>;
            };
        };
        router: <T extends RouterType>(router: T & RouterType) => T;
    };
};

declare const registerIpcMain: (router: RouterType) => void;

declare const createServer: <Router extends RouterType>(router: Router) => ServerFromRouter<Router>;

export { createServer, initIpc, registerIpcMain };
