import { Static } from '@sinclair/typebox';
import type { MissionOptions } from './mission.js';
import Commands, { CommandOutputFormat } from '../commands.js';
import type { Feature } from '@tak-ps/node-cot';
export declare enum MissionLayerType {
    GROUP = "GROUP",
    UID = "UID",
    CONTENTS = "CONTENTS",
    MAPLAYER = "MAPLAYER",
    ITEM = "ITEM"
}
export declare const MissionLayer: import("@sinclair/typebox").TObject<{
    name: import("@sinclair/typebox").TString;
    type: import("@sinclair/typebox").TEnum<typeof MissionLayerType>;
    parentUid: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
    uid: import("@sinclair/typebox").TString;
    mission_layers: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>>;
    uids: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
        data: import("@sinclair/typebox").TString;
        timestamp: import("@sinclair/typebox").TString;
        creatorUid: import("@sinclair/typebox").TString;
        keywords: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
        details: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
            type: import("@sinclair/typebox").TString;
            callsign: import("@sinclair/typebox").TString;
            color: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
            location: import("@sinclair/typebox").TObject<{
                lat: import("@sinclair/typebox").TNumber;
                lon: import("@sinclair/typebox").TNumber;
            }>;
        }>>;
    }>>>;
    contents: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>>;
    maplayers: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>>;
}>;
export declare const DeleteInput: import("@sinclair/typebox").TObject<{
    uid: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
    creatorUid: import("@sinclair/typebox").TString;
}>;
export declare const RenameInput: import("@sinclair/typebox").TObject<{
    name: import("@sinclair/typebox").TString;
    creatorUid: import("@sinclair/typebox").TString;
}>;
export declare const CreateInput: import("@sinclair/typebox").TObject<{
    name: import("@sinclair/typebox").TString;
    type: import("@sinclair/typebox").TEnum<typeof MissionLayerType>;
    uid: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
    parentUid: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
    afterUid: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
    creatorUid: import("@sinclair/typebox").TString;
}>;
export declare const TAKList_MissionLayer: import("@sinclair/typebox").TObject<{
    version: import("@sinclair/typebox").TString;
    type: import("@sinclair/typebox").TString;
    data: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
        name: import("@sinclair/typebox").TString;
        type: import("@sinclair/typebox").TEnum<typeof MissionLayerType>;
        parentUid: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
        uid: import("@sinclair/typebox").TString;
        mission_layers: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>>;
        uids: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            data: import("@sinclair/typebox").TString;
            timestamp: import("@sinclair/typebox").TString;
            creatorUid: import("@sinclair/typebox").TString;
            keywords: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
            details: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
                type: import("@sinclair/typebox").TString;
                callsign: import("@sinclair/typebox").TString;
                color: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                location: import("@sinclair/typebox").TObject<{
                    lat: import("@sinclair/typebox").TNumber;
                    lon: import("@sinclair/typebox").TNumber;
                }>;
            }>>;
        }>>>;
        contents: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>>;
        maplayers: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>>;
    }>>;
    messages: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
    nodeId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
}>;
export declare const TAKItem_MissionLayer: import("@sinclair/typebox").TObject<{
    version: import("@sinclair/typebox").TString;
    type: import("@sinclair/typebox").TString;
    data: import("@sinclair/typebox").TObject<{
        name: import("@sinclair/typebox").TString;
        type: import("@sinclair/typebox").TEnum<typeof MissionLayerType>;
        parentUid: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
        uid: import("@sinclair/typebox").TString;
        mission_layers: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>>;
        uids: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
            data: import("@sinclair/typebox").TString;
            timestamp: import("@sinclair/typebox").TString;
            creatorUid: import("@sinclair/typebox").TString;
            keywords: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
            details: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
                type: import("@sinclair/typebox").TString;
                callsign: import("@sinclair/typebox").TString;
                color: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                location: import("@sinclair/typebox").TObject<{
                    lat: import("@sinclair/typebox").TNumber;
                    lon: import("@sinclair/typebox").TNumber;
                }>;
            }>>;
        }>>>;
        contents: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>>;
        maplayers: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>>;
    }>;
    messages: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
    nodeId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
}>;
export default class MissionLayerCommands extends Commands {
    #private;
    schema: {
        list: {
            description: string;
            params: import("@sinclair/typebox").TObject<{}>;
            query: import("@sinclair/typebox").TObject<{}>;
            formats: CommandOutputFormat[];
        };
    };
    cli(): Promise<object | string>;
    isEmpty(layer: Static<typeof MissionLayer>): boolean;
    listAsPathMap(name: string, opts?: Static<typeof MissionOptions>): Promise<Map<string, Static<typeof MissionLayer>>>;
    list(name: string, opts?: Static<typeof MissionOptions>): Promise<Static<typeof TAKList_MissionLayer>>;
    /**
     * Stopgap function until the main latestFeats function can accept a path
     * parameter
     */
    latestFeats(name: string, layerUid: string, // Layer UID
    opts?: Static<typeof MissionOptions>): Promise<Static<typeof Feature.Feature>[]>;
    get(name: string, layerUid: string, // Layer UID
    opts?: Static<typeof MissionOptions>): Promise<Static<typeof TAKItem_MissionLayer>>;
    create(name: string, query: Static<typeof CreateInput>, opts?: Static<typeof MissionOptions>): Promise<Static<typeof TAKItem_MissionLayer>>;
    rename(name: string, layer: string, query: Static<typeof RenameInput>, opts?: Static<typeof MissionOptions>): Promise<any>;
    delete(name: string, query: Static<typeof DeleteInput>, opts?: Static<typeof MissionOptions>): Promise<any>;
}
