import { Sdk as GenericSdk } from "../__generated__/generic-sdk";
import { Sdk as GraphqlRequestSdk } from "../__generated__/graphql-request";
/**
 * Type to get result of a promise
 */
declare type Await<T> = T extends {
    then(onfulfilled?: (value: infer U) => unknown): unknown;
} ? U : T;
/**
 * The type of a stream function output
 */
declare type StreamQuery<Result extends {
    result?: any;
}, Arguments extends Array<{}>> = (arg: {
    first?: number;
    offset?: number;
    batchSize?: number;
    batchConcurrency?: number;
} & Arguments[0]) => Promise<AsyncIterableIterator<Result["result"]>>;
export declare type EnhancedSdk<Sdk extends GenericSdk | GraphqlRequestSdk> = Sdk & {
    AnomalyLevelMapping: {
        get: Sdk["getAnomalyLevelMapping"];
        create: Sdk["createAnomalyLevelMapping"];
        update: Sdk["updateAnomalyLevelMapping"];
        delete: Sdk["deleteAnomalyLevelMapping"];
        count: Sdk["countAnomalyLevelMapping"];
        list: Sdk["listAnomalyLevelMapping"];
        stream: StreamQuery<Await<ReturnType<Sdk["getAnomalyLevelMapping"]>>, Parameters<Sdk["listAnomalyLevelMapping"]>>;
    };
    AnomalyType: {
        get: Sdk["getAnomalyType"];
        create: Sdk["createAnomalyType"];
        update: Sdk["updateAnomalyType"];
        delete: Sdk["deleteAnomalyType"];
        count: Sdk["countAnomalyType"];
        list: Sdk["listAnomalyType"];
        stream: StreamQuery<Await<ReturnType<Sdk["getAnomalyType"]>>, Parameters<Sdk["listAnomalyType"]>>;
    };
    Anomaly: {
        get: Sdk["getAnomaly"];
        create: Sdk["createAnomaly"];
        update: Sdk["updateAnomaly"];
        delete: Sdk["deleteAnomaly"];
        count: Sdk["countAnomaly"];
        list: Sdk["listAnomaly"];
        stream: StreamQuery<Await<ReturnType<Sdk["getAnomaly"]>>, Parameters<Sdk["listAnomaly"]>>;
    };
    Artifact: {
        get: Sdk["getArtifact"];
        create: Sdk["createArtifact"];
        update: Sdk["updateArtifact"];
        delete: Sdk["deleteArtifact"];
        count: Sdk["countArtifact"];
        list: Sdk["listArtifact"];
        stream: StreamQuery<Await<ReturnType<Sdk["getArtifact"]>>, Parameters<Sdk["listArtifact"]>>;
    };
    Detection: {
        get: Sdk["getDetection"];
        create: Sdk["createDetection"];
        update: Sdk["updateDetection"];
        delete: Sdk["deleteDetection"];
        count: Sdk["countDetection"];
        list: Sdk["listDetection"];
        stream: StreamQuery<Await<ReturnType<Sdk["getDetection"]>>, Parameters<Sdk["listDetection"]>>;
    };
    File: {
        get: Sdk["getFile"];
        create: Sdk["createFile"];
        update: Sdk["updateFile"];
        delete: Sdk["deleteFile"];
        count: Sdk["countFile"];
        list: Sdk["listFile"];
        stream: StreamQuery<Await<ReturnType<Sdk["getFile"]>>, Parameters<Sdk["listFile"]>>;
    };
    Image: {
        get: Sdk["getImage"];
        create: Sdk["createImage"];
        update: Sdk["updateImage"];
        delete: Sdk["deleteImage"];
        count: Sdk["countImage"];
        list: Sdk["listImage"];
        stream: StreamQuery<Await<ReturnType<Sdk["getImage"]>>, Parameters<Sdk["listImage"]>>;
    };
    Location: {
        get: Sdk["getLocation"];
        create: Sdk["createLocation"];
        update: Sdk["updateLocation"];
        delete: Sdk["deleteLocation"];
        count: Sdk["countLocation"];
        list: Sdk["listLocation"];
        stream: StreamQuery<Await<ReturnType<Sdk["getLocation"]>>, Parameters<Sdk["listLocation"]>>;
    };
    MissionExecution: {
        get: Sdk["getMissionExecution"];
        create: Sdk["createMissionExecution"];
        update: Sdk["updateMissionExecution"];
        delete: Sdk["deleteMissionExecution"];
        count: Sdk["countMissionExecution"];
        list: Sdk["listMissionExecution"];
        stream: StreamQuery<Await<ReturnType<Sdk["getMissionExecution"]>>, Parameters<Sdk["listMissionExecution"]>>;
    };
    MissionPlan: {
        get: Sdk["getMissionPlan"];
        create: Sdk["createMissionPlan"];
        update: Sdk["updateMissionPlan"];
        delete: Sdk["deleteMissionPlan"];
        count: Sdk["countMissionPlan"];
        list: Sdk["listMissionPlan"];
        stream: StreamQuery<Await<ReturnType<Sdk["getMissionPlan"]>>, Parameters<Sdk["listMissionPlan"]>>;
    };
    Mission: {
        get: Sdk["getMission"];
        create: Sdk["createMission"];
        update: Sdk["updateMission"];
        delete: Sdk["deleteMission"];
        count: Sdk["countMission"];
        list: Sdk["listMission"];
        stream: StreamQuery<Await<ReturnType<Sdk["getMission"]>>, Parameters<Sdk["listMission"]>>;
    };
    Organization: {
        get: Sdk["getOrganization"];
        create: Sdk["createOrganization"];
        update: Sdk["updateOrganization"];
        delete: Sdk["deleteOrganization"];
        count: Sdk["countOrganization"];
        list: Sdk["listOrganization"];
        stream: StreamQuery<Await<ReturnType<Sdk["getOrganization"]>>, Parameters<Sdk["listOrganization"]>>;
    };
    StructureModel: {
        get: Sdk["getStructureModel"];
        create: Sdk["createStructureModel"];
        update: Sdk["updateStructureModel"];
        delete: Sdk["deleteStructureModel"];
        count: Sdk["countStructureModel"];
        list: Sdk["listStructureModel"];
        stream: StreamQuery<Await<ReturnType<Sdk["getStructureModel"]>>, Parameters<Sdk["listStructureModel"]>>;
    };
    Structure: {
        get: Sdk["getStructure"];
        create: Sdk["createStructure"];
        update: Sdk["updateStructure"];
        delete: Sdk["deleteStructure"];
        count: Sdk["countStructure"];
        list: Sdk["listStructure"];
        stream: StreamQuery<Await<ReturnType<Sdk["getStructure"]>>, Parameters<Sdk["listStructure"]>>;
    };
    User: {
        get: Sdk["getUser"];
        create: Sdk["createUser"];
        update: Sdk["updateUser"];
        delete: Sdk["deleteUser"];
        count: Sdk["countUser"];
        list: Sdk["listUser"];
        stream: StreamQuery<Await<ReturnType<Sdk["getUser"]>>, Parameters<Sdk["listUser"]>>;
    };
};
/**
 * Process a Sdk and apply naming conventions to create Entity fields in the Sdk
 * which contains standard methods for each entity
 * @param sdk
 */
export declare const enhanceSdk: <Sdk extends {
    authenticate(variables: import("../__generated__/graphql-request").Exact<{
        email: string;
        password: string;
    }>): Promise<import("../__generated__/graphql-request").AuthenticateMutation>;
    listImage(variables?: import("../__generated__/graphql-request").Exact<{
        first?: number;
        offset?: number;
        filter?: import("../__generated__/graphql-request").ImageFilter;
        orderBy?: import("../__generated__/graphql-request").ImagesOrderBy[];
    }>): Promise<import("../__generated__/graphql-request").ListImageQuery>;
    countImage(variables?: import("../__generated__/graphql-request").Exact<{
        first?: number;
        offset?: number;
        filter?: import("../__generated__/graphql-request").ImageFilter;
        orderBy?: import("../__generated__/graphql-request").ImagesOrderBy[];
    }>): Promise<import("../__generated__/graphql-request").CountImageQuery>;
    getImage(variables: import("../__generated__/graphql-request").Exact<{
        id: string;
    }>): Promise<import("../__generated__/graphql-request").GetImageQuery>;
    createImage(variables: import("../__generated__/graphql-request").Exact<{
        input: import("../__generated__/graphql-request").CreateImageInput;
    }>): Promise<import("../__generated__/graphql-request").CreateImageMutation>;
    updateImage(variables: import("../__generated__/graphql-request").Exact<{
        input: import("../__generated__/graphql-request").UpdateImageInput;
    }>): Promise<import("../__generated__/graphql-request").UpdateImageMutation>;
    deleteImage(variables: import("../__generated__/graphql-request").Exact<{
        input: import("../__generated__/graphql-request").DeleteImageInput;
    }>): Promise<import("../__generated__/graphql-request").DeleteImageMutation>;
    listMission(variables?: import("../__generated__/graphql-request").Exact<{
        first?: number;
        offset?: number;
        filter?: import("../__generated__/graphql-request").MissionFilter;
        orderBy?: import("../__generated__/graphql-request").MissionsOrderBy[];
    }>): Promise<import("../__generated__/graphql-request").ListMissionQuery>;
    countMission(variables?: import("../__generated__/graphql-request").Exact<{
        first?: number;
        offset?: number;
        filter?: import("../__generated__/graphql-request").MissionFilter;
        orderBy?: import("../__generated__/graphql-request").MissionsOrderBy[];
    }>): Promise<import("../__generated__/graphql-request").CountMissionQuery>;
    getMission(variables: import("../__generated__/graphql-request").Exact<{
        id: string;
    }>): Promise<import("../__generated__/graphql-request").GetMissionQuery>;
    createMission(variables: import("../__generated__/graphql-request").Exact<{
        input: import("../__generated__/graphql-request").CreateMissionInput;
    }>): Promise<import("../__generated__/graphql-request").CreateMissionMutation>;
    updateMission(variables: import("../__generated__/graphql-request").Exact<{
        input: import("../__generated__/graphql-request").UpdateMissionInput;
    }>): Promise<import("../__generated__/graphql-request").UpdateMissionMutation>;
    deleteMission(variables: import("../__generated__/graphql-request").Exact<{
        input: import("../__generated__/graphql-request").DeleteMissionInput;
    }>): Promise<import("../__generated__/graphql-request").DeleteMissionMutation>;
} | {
    authenticate(variables: import("../__generated__/generic-sdk").Exact<{
        email: string;
        password: string;
    }>, options?: unknown): Promise<import("../__generated__/generic-sdk").AuthenticateMutation>;
    listImage(variables?: import("../__generated__/generic-sdk").Exact<{
        first?: number;
        offset?: number;
        filter?: import("../__generated__/generic-sdk").ImageFilter;
        orderBy?: import("../__generated__/generic-sdk").ImagesOrderBy[];
    }>, options?: unknown): Promise<import("../__generated__/generic-sdk").ListImageQuery>;
    countImage(variables?: import("../__generated__/generic-sdk").Exact<{
        first?: number;
        offset?: number;
        filter?: import("../__generated__/generic-sdk").ImageFilter;
        orderBy?: import("../__generated__/generic-sdk").ImagesOrderBy[];
    }>, options?: unknown): Promise<import("../__generated__/generic-sdk").CountImageQuery>;
    getImage(variables: import("../__generated__/generic-sdk").Exact<{
        id: string;
    }>, options?: unknown): Promise<import("../__generated__/generic-sdk").GetImageQuery>;
    createImage(variables: import("../__generated__/generic-sdk").Exact<{
        input: import("../__generated__/generic-sdk").CreateImageInput;
    }>, options?: unknown): Promise<import("../__generated__/generic-sdk").CreateImageMutation>;
    updateImage(variables: import("../__generated__/generic-sdk").Exact<{
        input: import("../__generated__/generic-sdk").UpdateImageInput;
    }>, options?: unknown): Promise<import("../__generated__/generic-sdk").UpdateImageMutation>;
    deleteImage(variables: import("../__generated__/generic-sdk").Exact<{
        input: import("../__generated__/generic-sdk").DeleteImageInput;
    }>, options?: unknown): Promise<import("../__generated__/generic-sdk").DeleteImageMutation>;
    listMission(variables?: import("../__generated__/generic-sdk").Exact<{
        first?: number;
        offset?: number;
        filter?: import("../__generated__/generic-sdk").MissionFilter;
        orderBy?: import("../__generated__/generic-sdk").MissionsOrderBy[];
    }>, options?: unknown): Promise<import("../__generated__/generic-sdk").ListMissionQuery>;
    countMission(variables?: import("../__generated__/generic-sdk").Exact<{
        first?: number;
        offset?: number;
        filter?: import("../__generated__/generic-sdk").MissionFilter;
        orderBy?: import("../__generated__/generic-sdk").MissionsOrderBy[];
    }>, options?: unknown): Promise<import("../__generated__/generic-sdk").CountMissionQuery>;
    getMission(variables: import("../__generated__/generic-sdk").Exact<{
        id: string;
    }>, options?: unknown): Promise<import("../__generated__/generic-sdk").GetMissionQuery>;
    createMission(variables: import("../__generated__/generic-sdk").Exact<{
        input: import("../__generated__/generic-sdk").CreateMissionInput;
    }>, options?: unknown): Promise<import("../__generated__/generic-sdk").CreateMissionMutation>;
    updateMission(variables: import("../__generated__/generic-sdk").Exact<{
        input: import("../__generated__/generic-sdk").UpdateMissionInput;
    }>, options?: unknown): Promise<import("../__generated__/generic-sdk").UpdateMissionMutation>;
    deleteMission(variables: import("../__generated__/generic-sdk").Exact<{
        input: import("../__generated__/generic-sdk").DeleteMissionInput;
    }>, options?: unknown): Promise<import("../__generated__/generic-sdk").DeleteMissionMutation>;
}>(originalSdk: Sdk) => EnhancedSdk<Sdk>;
export {};
