import { flags } from '@oclif/command';
import BaseCommand from '../utils';
import Agreement from '../models/agreement.model';
import JobModel from '../models/job.model';
import { JobState } from '../definitions';
import { IConfig } from '@oclif/config';
import { OutputFlags } from '@oclif/parser';
declare enum FilterStatus {
    active = "active",
    inactive = "inactive "
}
declare type AgreementWithJobs = Agreement & {
    jobs: JobModel[];
};
declare type AgreementFilters = {
    status?: FilterStatus;
    pinningStatus?: JobState[];
};
export default class AgreementsCommand extends BaseCommand {
    static flags: {
        network: flags.IOptionFlag<string | undefined>;
        status: flags.IOptionFlag<string | undefined>;
        pinningStatus: flags.IOptionFlag<string[]>;
        db: flags.IOptionFlag<string | undefined>;
        config: flags.IOptionFlag<string | undefined>;
        log: flags.IOptionFlag<string>;
        skipPrompt: import("@oclif/parser/lib/flags").IBooleanFlag<boolean>;
        'log-filter': flags.IOptionFlag<string | undefined>;
        'log-path': flags.IOptionFlag<string | undefined>;
    };
    static description: string;
    static examples: string[];
    constructor(argv: string[], config: IConfig);
    protected baseConfig(flags: OutputFlags<typeof AgreementsCommand.flags>): void;
    static getStatus(agreement: Agreement): string;
    static getJobInfo(agreement: AgreementWithJobs): string;
    static expireIn(agreement: Agreement): string;
    static prepareAgreementForTable(agreement: AgreementWithJobs): any[];
    static filterAgreement(agreement: AgreementWithJobs, filters: AgreementFilters): Array<Agreement>;
    queryAgreement(filters?: AgreementFilters): Promise<Array<AgreementWithJobs>>;
    run(): Promise<void>;
}
export {};
