import * as plugins from '../plugins.js';
import * as userInterfaces from '../data/user.js';
import type { IImage } from '../data/index.js';
export interface IRequest_GetAllImages extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IRequest_GetAllImages> {
    method: 'getAllImages';
    request: {
        identity: userInterfaces.IIdentity;
    };
    response: {
        images: IImage[];
    };
}
/**
 * gets a single image
 * authentication can happen via imageClaim or identity
 */
export interface IRequest_GetImage extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IRequest_GetImage> {
    method: 'getImage';
    request: {
        identity: userInterfaces.IIdentity;
        imageId: string;
    };
    response: {
        image: IImage;
    };
}
export interface IRequest_CreateImage extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IRequest_CreateImage> {
    method: 'createImage';
    request: {
        identity: userInterfaces.IIdentity;
        name: string;
        description: string;
    };
    response: {
        image: IImage;
    };
}
export interface IRequest_PushImageVersion extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IRequest_PushImageVersion> {
    method: 'pushImageVersion';
    request: {
        identity: userInterfaces.IIdentity;
        imageId: string;
        versionString: string;
        imageStream: plugins.typedrequestInterfaces.IVirtualStream;
    };
    response: {
        allowed: boolean;
    };
}
export interface IRequest_PullImageVersion extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IRequest_PullImageVersion> {
    method: 'pullImageVersion';
    request: {
        identity: userInterfaces.IIdentity;
        imageId: string;
        versionString: string;
    };
    response: {
        imageStream: plugins.typedrequestInterfaces.IVirtualStream;
    };
}
export interface IRequest_DeleteImage extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IRequest_DeleteImage> {
    method: 'deleteImage';
    request: {
        identity: userInterfaces.IIdentity;
        imageId: string;
    };
    response: {};
}
