import { PathEventEmitter } from '@ztimson/utils';
import { AssetController } from './asset-controller';
import { Meta } from './core';
import { Momentum } from './momentum';
export type Blacklisted = Meta & {
    cidr: string;
};
export type RateLimit = Meta & {
    match: {
        path: string | null;
        cidr: string | null;
    };
    required: {
        cidr: string | null;
        groups: string[];
        captcha: number | null;
    };
    limit: {
        ip: boolean;
        user: boolean;
        ttl: number | null;
        value: number | null;
    };
};
export declare class Blacklist extends AssetController<Blacklisted> {
    protected momentum: Momentum;
    constructor(momentum: Momentum);
    update(ignore: Partial<Blacklisted>): Promise<Blacklisted>;
}
export declare class RateLimiter extends AssetController<RateLimit> {
    protected momentum: Momentum;
    constructor(momentum: Momentum);
}
export declare class Routes extends PathEventEmitter {
    protected momentum: Momentum;
    blacklist: Blacklist;
    rateLimiter: RateLimiter;
    constructor(momentum: Momentum);
}
//# sourceMappingURL=routes.d.ts.map