import { Action, BooleanAtom } from '@reatom/framework';
import { JSX } from '../jsx';
import { ZodAtomization } from '@reatom/npm-zod';
import { z } from 'zod';
import { Lines } from './reatomLines';
import { GraphModel } from './reatomGraph';
export declare const Filter: z.ZodObject<{
    search: z.ZodString;
    stateSearch: z.ZodString;
    exclude: z.ZodString;
    type: z.ZodEnum<["filter", "hide", "exclude", "highlight"]>;
    color: z.ZodString;
    active: z.ZodBoolean;
}, "strip", z.ZodTypeAny, {
    search: string;
    color: string;
    type: "filter" | "exclude" | "hide" | "highlight";
    stateSearch: string;
    exclude: string;
    active: boolean;
}, {
    search: string;
    color: string;
    type: "filter" | "exclude" | "hide" | "highlight";
    stateSearch: string;
    exclude: string;
    active: boolean;
}>;
export type Filter = ZodAtomization<typeof Filter>;
export type FilterJSON = z.infer<typeof Filter>;
export declare const Filters: z.ZodObject<{
    search: z.ZodObject<{
        search: z.ZodString;
        stateSearch: z.ZodString;
        exclude: z.ZodString;
        type: z.ZodEnum<["filter", "hide", "exclude", "highlight"]>;
        color: z.ZodString;
        active: z.ZodBoolean;
    }, "strip", z.ZodTypeAny, {
        search: string;
        color: string;
        type: "filter" | "exclude" | "hide" | "highlight";
        stateSearch: string;
        exclude: string;
        active: boolean;
    }, {
        search: string;
        color: string;
        type: "filter" | "exclude" | "hide" | "highlight";
        stateSearch: string;
        exclude: string;
        active: boolean;
    }>;
    preview: z.ZodBoolean;
    time: z.ZodBoolean;
    folded: z.ZodBoolean;
    size: z.ZodNumber;
    list: z.ZodArray<z.ZodObject<{
        search: z.ZodString;
        stateSearch: z.ZodString;
        exclude: z.ZodString;
        type: z.ZodEnum<["filter", "hide", "exclude", "highlight"]>;
        color: z.ZodString;
        active: z.ZodBoolean;
    }, "strip", z.ZodTypeAny, {
        search: string;
        color: string;
        type: "filter" | "exclude" | "hide" | "highlight";
        stateSearch: string;
        exclude: string;
        active: boolean;
    }, {
        search: string;
        color: string;
        type: "filter" | "exclude" | "hide" | "highlight";
        stateSearch: string;
        exclude: string;
        active: boolean;
    }>, "many">;
}, "strip", z.ZodTypeAny, {
    search: {
        search: string;
        color: string;
        type: "filter" | "exclude" | "hide" | "highlight";
        stateSearch: string;
        exclude: string;
        active: boolean;
    };
    time: boolean;
    size: number;
    list: {
        search: string;
        color: string;
        type: "filter" | "exclude" | "hide" | "highlight";
        stateSearch: string;
        exclude: string;
        active: boolean;
    }[];
    preview: boolean;
    folded: boolean;
}, {
    search: {
        search: string;
        color: string;
        type: "filter" | "exclude" | "hide" | "highlight";
        stateSearch: string;
        exclude: string;
        active: boolean;
    };
    time: boolean;
    size: number;
    list: {
        search: string;
        color: string;
        type: "filter" | "exclude" | "hide" | "highlight";
        stateSearch: string;
        exclude: string;
        active: boolean;
    }[];
    preview: boolean;
    folded: boolean;
}>;
export type Filters = ZodAtomization<typeof Filters>;
export type FiltersJSON = z.infer<typeof Filters>;
export type FiltersModel = Filters & {
    recording: BooleanAtom;
    trackSize: Action;
    element: JSX.Element;
};
export declare const reatomFilters: ({ list, lines, redrawLines, initSize, }: {
    list: GraphModel["list"];
    lines: Lines;
    redrawLines: GraphModel["redrawLines"];
    initSize: number;
}, name: string) => FiltersModel;
//# sourceMappingURL=reatomFilters.d.ts.map