import { z } from "zod";
import { AnkiConnectClient } from "../clients/anki-connect.client.js";
export declare const cardStateCountsSchema: z.ZodObject<{
    new: z.ZodNumber;
    learning: z.ZodNumber;
    review: z.ZodNumber;
    suspended: z.ZodNumber;
    buried: z.ZodNumber;
}, z.core.$strip>;
export type CardStateCounts = z.infer<typeof cardStateCountsSchema>;
export declare function cardStatesSchema(scope: string): z.ZodObject<{
    new: z.ZodNumber;
    learning: z.ZodNumber;
    review: z.ZodNumber;
    suspended: z.ZodNumber;
    buried: z.ZodNumber;
}, z.core.$strip>;
export declare function emptyCardStateCounts(): CardStateCounts;
export declare function deckScopeQuery(deckName: string): string;
export declare function fetchCardStateCounts(client: AnkiConnectClient, scope?: string): Promise<CardStateCounts>;
export declare const DUE_TREE_INVARIANT_NOTE: string;
export declare function dueTreeCountsShape(totalDescription: string): {
    total: z.ZodNumber;
    new: z.ZodNumber;
    learning: z.ZodNumber;
    review: z.ZodNumber;
    other: z.ZodNumber;
};
export type DueTreeCounts = {
    [K in keyof ReturnType<typeof dueTreeCountsShape>]: z.infer<ReturnType<typeof dueTreeCountsShape>[K]>;
};
export declare function dueTreeCountsSchema(options: {
    scope: string;
    total: string;
    note?: string;
}): z.ZodObject<{
    total: z.ZodNumber;
    new: z.ZodNumber;
    learning: z.ZodNumber;
    review: z.ZodNumber;
    other: z.ZodNumber;
}, z.core.$strip>;
