import { Command } from '@oclif/core';
import type { Interfaces } from '@oclif/core';
import type { Application, BalenaSDK, Pine } from 'balena-sdk';
declare const getApplicationOptions: {
    readonly $select: "slug";
    readonly $expand: {
        readonly is_for__device_type: {
            readonly $select: "slug";
        };
    };
};
export default class ConfigGenerateCmd extends Command {
    static description: string;
    static examples: string[];
    static flags: {
        version: Interfaces.OptionFlag<string, Interfaces.CustomOptions>;
        fleet: Interfaces.OptionFlag<string | undefined, Interfaces.CustomOptions>;
        dev: Interfaces.BooleanFlag<boolean>;
        secureBoot: Interfaces.BooleanFlag<boolean>;
        device: Interfaces.OptionFlag<string | undefined, Interfaces.CustomOptions>;
        deviceApiKey: Interfaces.OptionFlag<string | undefined, Interfaces.CustomOptions>;
        deviceType: Interfaces.OptionFlag<string | undefined, Interfaces.CustomOptions>;
        output: Interfaces.OptionFlag<string | undefined, Interfaces.CustomOptions>;
        network: Interfaces.OptionFlag<string | undefined, Interfaces.CustomOptions>;
        wifiSsid: Interfaces.OptionFlag<string | undefined, Interfaces.CustomOptions>;
        wifiKey: Interfaces.OptionFlag<string | undefined, Interfaces.CustomOptions>;
        appUpdatePollInterval: Interfaces.OptionFlag<string | undefined, Interfaces.CustomOptions>;
        'initial-device-name': Interfaces.OptionFlag<string | undefined, Interfaces.CustomOptions>;
        'provisioning-key-name': Interfaces.OptionFlag<string | undefined, Interfaces.CustomOptions>;
        'provisioning-key-expiry-date': Interfaces.OptionFlag<string | undefined, Interfaces.CustomOptions>;
    };
    static authenticated: boolean;
    getApplication(balena: BalenaSDK, fleet: string): Promise<NonNullable<Pine.OptionsToResponse<Application['Read'], typeof getApplicationOptions, string>>>;
    run(): Promise<void>;
    protected readonly missingDeviceOrAppMessage: string;
    protected readonly deviceTypeNotAllowedMessage = "The --deviceType option can only be used alongside the --fleet option";
    protected validateOptions(options: Interfaces.InferredFlags<typeof ConfigGenerateCmd.flags>): Promise<void>;
}
export {};
