export declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
    ctx: import("../index.js").Context;
    meta: object;
    errorShape: import("@trpc/server").TRPCDefaultErrorShape;
    transformer: false;
}, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
    auth: import("@trpc/server").TRPCBuiltRouter<{
        ctx: import("../index.js").Context;
        meta: object;
        errorShape: import("@trpc/server").TRPCDefaultErrorShape;
        transformer: false;
    }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
        authStatus: import("@trpc/server").TRPCQueryProcedure<{
            input: void;
            output: {
                userExists: boolean;
                signupAllowed: boolean;
                signupWindowMsRemaining: number;
                isDocker: boolean;
                isLoggedIn: boolean;
                user: {
                    id: number;
                    username: string;
                } | null;
            };
            meta: object;
        }>;
        setup: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                username: string;
                password: string;
            };
            output: void;
            meta: object;
        }>;
        logIn: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                username: string;
                password: string;
            };
            output: void;
            meta: object;
        }>;
        logOut: import("@trpc/server").TRPCMutationProcedure<{
            input: void;
            output: void;
            meta: object;
        }>;
    }>>;
    settings: import("@trpc/server").TRPCBuiltRouter<{
        ctx: import("../index.js").Context;
        meta: object;
        errorShape: import("@trpc/server").TRPCDefaultErrorShape;
        transformer: false;
    }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
        get: import("@trpc/server").TRPCQueryProcedure<{
            input: void;
            output: {
                config: {
                    delay: number;
                    torznab: string[];
                    useClientTorrents: boolean;
                    dataDirs: string[];
                    matchMode: import("@cross-seed/shared/constants").MatchMode;
                    skipRecheck: boolean;
                    autoResumeMaxDownload: number;
                    ignoreNonRelevantFilesToResume: boolean;
                    linkDirs: string[];
                    linkType: import("@cross-seed/shared/constants").LinkType;
                    flatLinking: boolean;
                    maxDataDepth: number;
                    outputDir: string;
                    includeSingleEpisodes: boolean;
                    verbose: boolean;
                    includeNonVideos: boolean;
                    fuzzySizeThreshold: number;
                    action: import("@cross-seed/shared/constants").Action;
                    torrentClients: string[];
                    duplicateCategories: boolean;
                    notificationWebhookUrls: (string | {
                        url: string;
                        payload?: Record<string, unknown> | undefined;
                        headers?: Record<string, string> | undefined;
                    })[];
                    torrents: string[];
                    blockList: string[];
                    sonarr: string[];
                    radarr: string[];
                    linkCategory?: string | undefined;
                    torrentDir?: string | undefined;
                    injectDir?: string | undefined;
                    ignoreTitles?: boolean | undefined;
                    seasonFromEpisodes?: number | undefined;
                    excludeOlder?: number | undefined;
                    excludeRecentSearch?: number | undefined;
                    port?: number | undefined;
                    host?: string | undefined;
                    basePath?: string | undefined;
                    searchCadence?: number | undefined;
                    rssCadence?: number | undefined;
                    snatchTimeout?: number | undefined;
                    searchTimeout?: number | undefined;
                    searchLimit?: number | undefined;
                    apiKey?: string | undefined;
                };
                apiKey: string;
            };
            meta: object;
        }>;
        save: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                [x: string]: unknown;
            };
            output: {
                success: boolean;
            };
            meta: object;
        }>;
        setApiKey: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                apiKey: string;
            };
            output: {
                apiKey: string;
            };
            meta: object;
        }>;
        resetApiKey: import("@trpc/server").TRPCMutationProcedure<{
            input: void;
            output: {
                apiKey: string;
            };
            meta: object;
        }>;
        replace: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                [x: string]: unknown;
            };
            output: {
                success: boolean;
            };
            meta: object;
        }>;
        validate: import("@trpc/server").TRPCQueryProcedure<{
            input: void;
            output: {
                status: string;
                validations: {
                    paths: boolean;
                    torznab: boolean;
                };
            };
            meta: object;
        }>;
        testNotification: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                webhooks: (string | {
                    url: string;
                    payload?: Record<string, unknown> | undefined;
                    headers?: Record<string, string> | undefined;
                })[];
            };
            output: {
                results: import("../../pushNotifier.js").WebhookResult[];
            };
            meta: object;
        }>;
    }>>;
    logs: import("@trpc/server").TRPCBuiltRouter<{
        ctx: import("../index.js").Context;
        meta: object;
        errorShape: import("@trpc/server").TRPCDefaultErrorShape;
        transformer: false;
    }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
        getVerbose: import("@trpc/server").TRPCQueryProcedure<{
            input: void;
            output: string;
            meta: object;
        }>;
        getRecentLogs: import("@trpc/server").TRPCQueryProcedure<{
            input: {
                limit?: number | undefined;
            };
            output: import("../../utils/logWatcher.js").LogEntry[];
            meta: object;
        }>;
        subscribe: import("@trpc/server").TRPCSubscriptionProcedure<{
            input: {
                limit?: number | undefined;
            };
            output: AsyncIterable<import("../../utils/logWatcher.js").LogEntry, never, any>;
            meta: object;
        }>;
    }>>;
    jobs: import("@trpc/server").TRPCBuiltRouter<{
        ctx: import("../index.js").Context;
        meta: object;
        errorShape: import("@trpc/server").TRPCDefaultErrorShape;
        transformer: false;
    }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
        getJobStatuses: import("@trpc/server").TRPCQueryProcedure<{
            input: void;
            output: {
                name: import("../../jobs.js").JobName;
                interval: string;
                lastExecution: string | null;
                lastDuration: string | null;
                nextExecution: string;
                isActive: boolean;
                canRunNow: boolean;
            }[];
            meta: object;
        }>;
        triggerJob: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                name: import("../../jobs.js").JobName;
            };
            output: {
                success: boolean;
                message: string;
            };
            meta: object;
        }>;
    }>>;
    stats: import("@trpc/server").TRPCBuiltRouter<{
        ctx: import("../index.js").Context;
        meta: object;
        errorShape: import("@trpc/server").TRPCDefaultErrorShape;
        transformer: false;
    }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
        getOverview: import("@trpc/server").TRPCQueryProcedure<{
            input: void;
            output: {
                totalSearchees: number;
                totalMatches: number;
                totalIndexers: number;
                healthyIndexers: number;
                recentMatches: string | number;
                matchRate: number;
                matchesPerSnatch: number;
                matchesPerQuery: number;
                matchesPerQueryIndexer: number;
                snatchCount: number;
                queryCount: number;
                queryIndexerCount: number;
                wastedSnatchCount: number;
                wastedSnatchRate: number;
                unhealthyIndexers: number;
                allIndexersHealthy: boolean;
                decisionBreakdown: (Pick<import("knex/types/tables.js").Decision, "decision"> & {
                    count?: string | number | undefined;
                })[];
            };
            meta: object;
        }>;
        getIndexerStats: import("@trpc/server").TRPCQueryProcedure<{
            input: void;
            output: {
                id: number;
                name: string;
                enabled: boolean;
                status: string;
            }[];
            meta: object;
        }>;
    }>>;
    indexers: import("@trpc/server").TRPCBuiltRouter<{
        ctx: import("../index.js").Context;
        meta: object;
        errorShape: import("@trpc/server").TRPCDefaultErrorShape;
        transformer: false;
    }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
        getAll: import("@trpc/server").TRPCQueryProcedure<{
            input: void;
            output: import("../../indexers.js").Indexer[];
            meta: object;
        }>;
        mergeDisabled: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                sourceId: number;
                targetId: number;
            };
            output: {
                mergedCount: number;
                deleted: boolean;
            };
            meta: object;
        }>;
        create: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                url: string;
                apikey: string;
                name?: string | undefined;
                enabled?: boolean | undefined;
            };
            output: import("../../indexers.js").Indexer;
            meta: object;
        }>;
        update: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                id: number;
                name?: string | null | undefined;
                url?: string | undefined;
                apikey?: string | undefined;
                enabled?: boolean | undefined;
            };
            output: import("../../indexers.js").Indexer;
            meta: object;
        }>;
        delete: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                id: number;
            };
            output: {
                success: true;
                indexer: import("../../indexers.js").Indexer;
            };
            meta: object;
        }>;
        testExisting: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                id: number;
            };
            output: {
                success: true;
                message: string;
            };
            meta: object;
        }>;
        testNew: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                url: string;
                apikey: string;
            };
            output: {
                success: true;
                message: string;
            };
            meta: object;
        }>;
    }>>;
    health: import("@trpc/server").TRPCBuiltRouter<{
        ctx: import("../index.js").Context;
        meta: object;
        errorShape: import("@trpc/server").TRPCDefaultErrorShape;
        transformer: false;
    }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
        get: import("@trpc/server").TRPCQueryProcedure<{
            input: void;
            output: {
                problems: import("../../problems.js").Problem[];
                diagnostics: {
                    db: import("../../diagnostics/db.js").DbDiagnostics;
                };
            };
            meta: object;
        }>;
    }>>;
    searchees: import("@trpc/server").TRPCBuiltRouter<{
        ctx: import("../index.js").Context;
        meta: object;
        errorShape: import("@trpc/server").TRPCDefaultErrorShape;
        transformer: false;
    }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
        list: import("@trpc/server").TRPCQueryProcedure<{
            input: {
                search?: string | undefined;
                limit?: number | undefined;
                offset?: number | undefined;
            } | undefined;
            output: {
                total: number;
                pagination: {
                    limit: number;
                    offset: number;
                };
                indexerTotals: {
                    configured: number;
                    enabled: number;
                };
                items: {
                    id: string | number;
                    name: string;
                    indexerCount: number;
                    firstSearchedAt: string | null;
                    lastSearchedAt: string | null;
                    label: import("../../logger.js").Label.SEARCH | import("../../logger.js").Label.RSS | import("../../logger.js").Label.ANNOUNCE | import("../../logger.js").Label.WEBHOOK | import("../../logger.js").Label.INJECT | null;
                    source: import("../../searchee.js").SearcheeSource | null;
                    length: number | null;
                    clientHost: string | null;
                }[];
            };
            meta: object;
        }>;
        bulkSearch: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                names: string[];
                force?: boolean | undefined;
            };
            output: {
                requested: number;
                attempted: number;
                totalFound: number;
                skipped: number;
            };
            meta: object;
        }>;
    }>>;
    clients: import("@trpc/server").TRPCBuiltRouter<{
        ctx: import("../index.js").Context;
        meta: object;
        errorShape: import("@trpc/server").TRPCDefaultErrorShape;
        transformer: false;
    }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
        testConnection: import("@trpc/server").TRPCMutationProcedure<{
            input: {
                client: "qbittorrent" | "rtorrent" | "transmission" | "deluge";
                url: string;
                username?: string | undefined;
                password?: string | undefined;
                readonly?: boolean | undefined;
                plugin?: boolean | undefined;
            };
            output: {
                success: boolean;
                message: string;
            };
            meta: object;
        }>;
    }>>;
    meta: import("@trpc/server").TRPCBuiltRouter<{
        ctx: import("../index.js").Context;
        meta: object;
        errorShape: import("@trpc/server").TRPCDefaultErrorShape;
        transformer: false;
    }, import("@trpc/server").TRPCDecorateCreateRouterOptions<{
        getBuildInfo: import("@trpc/server").TRPCQueryProcedure<{
            input: void;
            output: {
                appName: any;
                version: any;
                build: {
                    commitSha: string | null;
                    branch: string | null;
                    tag: string | null;
                    message: string | null;
                    date: string | null;
                };
            };
            meta: object;
        }>;
    }>>;
}>>;
export type AppRouter = typeof appRouter;
