import { MTableQueries } from "../../common-types";
import { ICoreSyme } from "../../schema";
import { controllerResponse } from "../../utilities";
type IMenuErrorLogger = {
    [key in keyof MMenu]: string;
};
type IMenuChangeSequenceErrorLogger = {
    [key in keyof MMenuChangeSequencePayload]: string;
};
declare class MMenuListPayload extends MTableQueries {
    syme_id?: string;
    syme_title?: string;
    syme_type?: string;
    constructor(init: MMenuListPayload);
    Validate?(): Partial<IMenuErrorLogger>;
}
declare class MCoreSymeInsertUpdatePayload extends ICoreSyme {
    constructor(init: ICoreSyme);
    Validate?(): Partial<IMenuErrorLogger>;
}
declare class MCoreSymeGetByIdPayload {
    syme_id?: string;
    constructor(init: MCoreSymeGetByIdPayload);
    Validate?(): Partial<IMenuErrorLogger>;
}
declare class MCoreSymeDeletePayload {
    syme_id?: string;
    constructor(init: MCoreSymeDeletePayload);
    Validate?(): Partial<IMenuErrorLogger>;
}
declare class MMenu {
    syme_id?: string;
    syme_title?: string;
    syme_type?: string;
    sort?: 'asc' | 'desc';
    constructor(init: MMenu);
    Validate?(): Partial<IMenuErrorLogger>;
}
declare class MMenuChangeSequencePayload {
    menu_sequences?: {
        syme_id: string;
        syme_order_by: number;
    }[];
    constructor(init: MMenuChangeSequencePayload);
    Validate?(): Partial<IMenuChangeSequenceErrorLogger>;
}
interface menuInsertUpdateControllerResponse extends controllerResponse {
    data?: ICoreSyme;
}
interface menuByIdControllerResponse extends controllerResponse {
    data?: ICoreSyme;
}
interface menuDeleteControllerResponse extends controllerResponse {
    data?: boolean;
}
interface menuControllerResponse extends controllerResponse {
    data?: menuResponseData[];
}
interface menuListControllerResponse extends controllerResponse {
    data?: ICoreSyme[];
}
interface menuChangeSequenceControllerResponse extends controllerResponse {
    data?: {
        updated_count: number;
        menus: {
            syme_id: string;
            syme_order_by: number;
        }[];
    };
}
interface menuResponseData {
    _id: string;
    syme_title: string;
    syme_desc: string;
    syme_path: string;
    syme_icon: string;
    syme_type: string;
    syme_link: boolean;
    syme_ping: boolean;
    syme_ping_count: number;
    children: menuResponseData[];
}
export { IMenuErrorLogger, //interface
IMenuChangeSequenceErrorLogger, MMenu, // model
MMenuChangeSequencePayload, menuControllerResponse, // above coresponding to payload abd this corespons to rresponse
menuListControllerResponse, menuChangeSequenceControllerResponse, menuResponseData, MMenuListPayload, MCoreSymeInsertUpdatePayload, MCoreSymeDeletePayload, menuInsertUpdateControllerResponse, menuByIdControllerResponse, MCoreSymeGetByIdPayload, menuDeleteControllerResponse };
