import { Context, Schema } from 'koishi';
interface Filter {
    type: "user" | "flag";
    data: string[];
}
interface Rule {
    source: string;
    target: string[];
    filter: Filter;
}
interface Config {
    rule: Rule[];
}
declare const Rule: Schema<{
    source?: string | undefined;
    target?: string[] | undefined;
    filter?: ({
        type?: string | undefined;
        data?: string[] | undefined;
    } & import("koishi").Dict<any, string>) | undefined;
} & import("koishi").Dict<any, string>, {
    source: string;
    target: string[];
    filter: {
        type: string;
        data: string[];
    } & import("koishi").Dict<any, string>;
} & import("koishi").Dict<any, string>>;
declare const name = "advanced-forward";
declare const schema: Schema<{
    rule?: ({
        source?: string | undefined;
        target?: string[] | undefined;
        filter?: ({
            type?: string | undefined;
            data?: string[] | undefined;
        } & import("koishi").Dict<any, string>) | undefined;
    } & import("koishi").Dict<any, string>)[] | undefined;
} & import("koishi").Dict<any, string>, {
    rule: ({
        source: string;
        target: string[];
        filter: {
            type: string;
            data: string[];
        } & import("koishi").Dict<any, string>;
    } & import("koishi").Dict<any, string>)[];
} & import("koishi").Dict<any, string>>;
declare const using: readonly ["database"];
declare function apply(ctx: Context, opts: Config): Promise<void>;
export { apply as default, apply, name, schema, using };
