import { Command, Interfaces } from "@oclif/core";
import Config from "@trello-cli/config";
import Cache from "@trello-cli/cache";
import { TrelloClient } from "trello.js";
export type Flags<T extends typeof Command> = Interfaces.InferredFlags<typeof BaseCommand["baseFlags"] & T["flags"]>;
export type Args<T extends typeof Command> = Interfaces.InferredArgs<T["args"]>;
type Lookup = {
    board: string;
    list: string;
    card: string;
    user: string;
};
export declare abstract class BaseCommand<T extends typeof Command> extends Command {
    static baseFlags: {
        format: Interfaces.OptionFlag<"default" | "silent" | "json" | "csv", Interfaces.CustomOptions>;
    };
    protected defaultOutput: "default" | "silent" | "json" | "csv" | "fancy" | "raw";
    protected flags: Flags<T>;
    protected trelloConfig: Config;
    protected cache: Cache;
    protected client: TrelloClient;
    protected profile: string;
    protected configDir: string;
    protected lookups: Lookup;
    constructor(a: any, b: any);
    init(): Promise<void>;
    protected output(data: any): Promise<void>;
    protected toData(data: any): any;
    protected outputCsv(data: any): string;
    protected format(_data: any): Promise<string>;
    run(): Promise<void>;
    protected catch(err: Error & {
        exitCode?: number;
    }): Promise<any>;
    protected finally(_: Error | undefined): Promise<any>;
}
export {};
