import { SegmentState, SegmentLevel } from '../const';
import { resStatusResponse, collectionNameReq, GrpcTimeOut } from './Common';
export interface GetFlushStateReq extends GrpcTimeOut {
    segmentIDs: number[];
}
export interface FlushReq extends GrpcTimeOut {
    collection_names: string[];
    db_name?: string;
}
export interface FlushResult extends resStatusResponse {
    coll_segIDs: any;
}
export interface GetFlushStateResponse extends resStatusResponse {
    flushed: boolean;
}
export interface QuerySegmentInfo {
    segmentID: number;
    collectionID: number;
    partitionID: number;
    mem_size: number;
    num_rows: number;
    index_name: string;
    indexID: number;
    nodeID: number;
    state: SegmentState;
    nodeIds: number[];
    level: SegmentLevel;
}
export interface GetQuerySegmentInfoResponse extends resStatusResponse {
    infos: QuerySegmentInfo[];
}
export interface PersistentSegmentInfo {
    segmentID: number;
    collectionID: number;
    partitionID: number;
    num_rows: number;
    state: SegmentState;
}
export interface GePersistentSegmentInfoResponse extends resStatusResponse {
    infos: PersistentSegmentInfo[];
}
export interface ListIndexedSegmentReq extends collectionNameReq {
    index_name: string;
}
export interface ListIndexedSegmentResponse extends resStatusResponse {
    segmentIDs: number[];
}
export interface DescribeSegmentIndexDataReq extends collectionNameReq {
    index_name: string;
    segmentsIDs: number[];
}
export interface DescribeSegmentIndexDataResponse extends resStatusResponse {
    index_params: any;
    index_data: any;
}
export interface GetQuerySegmentInfoReq extends GrpcTimeOut {
    collectionName: string;
    dbName?: string;
}
export interface GePersistentSegmentInfoReq extends GrpcTimeOut {
    collectionName: string;
    dbName?: string;
}
export interface LoadBalanceReq extends GrpcTimeOut {
    src_nodeID: number;
    dst_nodeIDs?: number[];
    sealed_segmentIDs?: number[];
}
