import { ServiceSchema, Action, ActionHandler, LoggerInstance, ServiceMethods, ServiceEvents, Actions, ServiceSettingSchema, GenericObject } from 'moleculer';
export declare class BaseSchema {
    logger: LoggerInstance;
    name: string;
    version?: string | number;
    settings?: ServiceSettingSchema;
    metadata?: GenericObject;
    mixins?: Array<ServiceSchema>;
    actions?: Actions;
    methods?: ServiceMethods;
    events?: ServiceEvents;
}
export interface Options extends Partial<ServiceSchema> {
    name?: string;
    constructOverride?: boolean;
}
export interface ActionOptions extends Partial<Action> {
    name?: string;
    handler?: ActionHandler;
}
export declare function Method(target: any, key: any, descriptor: any): void;
export declare function Event(target: any, key: any, descriptor: any): void;
export declare function Action(options?: ActionOptions): (target: any, key: any, descriptor: any) => void;
export declare function Service(options?: Options): any;
