import TAKAPI from './api.js';
import type { TObject } from '@sinclair/typebox';
export type ParsedArgValue = string | boolean;
export type ParsedArgs = {
    _: string[];
    [key: string]: ParsedArgValue | ParsedArgValue[] | undefined;
};
export declare const CommandConfig: TObject<{
    version: import("@sinclair/typebox").TInteger;
    profiles: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, TObject<{
        host: import("@sinclair/typebox").TString;
        ports: TObject<{
            marti: import("@sinclair/typebox").TInteger;
            webtak: import("@sinclair/typebox").TInteger;
            stream: import("@sinclair/typebox").TInteger;
        }>;
        auth: import("@sinclair/typebox").TOptional<TObject<{
            cert: import("@sinclair/typebox").TString;
            key: import("@sinclair/typebox").TString;
            passphrase: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
            ca: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
            rejectUnauthorized: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
        }>>;
    }>>;
}>;
export declare enum CommandOutputFormat {
    JSON = "json",
    GEOJSON = "geojson",
    XML = "xml",
    BINARY = "binary"
}
export default class Commands {
    api: TAKAPI;
    schema: Record<string, {
        description: string;
        params: TObject<any>;
        query: TObject<any>;
        formats: Array<CommandOutputFormat>;
    }>;
    constructor(api: TAKAPI);
    cli(args: ParsedArgs): Promise<object | string>;
}
