import { Constructor } from '@dolittle/types';
import { GenerationLike } from '@dolittle/sdk.artifacts';
import { Decorators } from '@dolittle/sdk.common';
import { EventTypeIdLike } from '@dolittle/sdk.events';
import { KeySelectorBuilderCallback } from './KeySelectorBuilderCallback';
import { OnDecoratedProjectionMethod } from './OnDecoratedProjectionMethod';
/**
 * Decorator for decorating projection on methods.
 * @param {Constructor<TEvent>} type - The type of the event to handle.
 * @param {KeySelectorBuilderCallback<TEvent>} keySelectorCallback - The callback to build the key selector.
 * @returns {Decorators.Decorator} The decorator.
 * @template TEvent The event type to handle.
 */
export declare function on<TEvent>(type: Constructor<TEvent>, keySelectorCallback: KeySelectorBuilderCallback<TEvent>): Decorators.Decorator;
/**
 * Decorator for decorating projection on methods.
 * @param {EventTypeIdLike} eventTypeId - The event type id to handle.
 * @param {KeySelectorBuilderCallback} keySelectorCallback - The callback to build the key selector.
 * @returns {Decorators.Decorator} The decorator.
 */
export declare function on(eventTypeId: EventTypeIdLike, keySelectorCallback: KeySelectorBuilderCallback): Decorators.Decorator;
/**
 * Decorator for decorating projection on methods.
 * @param {EventTypeIdLike} eventTypeId - The event type id to handle.
 * @param {GenerationLike} [generation] - The optional generation of the event type to handle.
 * @param {KeySelectorBuilderCallback} keySelectorCallback - The callback to build the key selector.
 * @returns {Decorators.Decorator} The decorator.
 */
export declare function on(eventTypeId: EventTypeIdLike, generation: GenerationLike, keySelectorCallback: KeySelectorBuilderCallback): Decorators.Decorator;
/**
 * Gets the decorated projection on methods of the specified class.
 * @param {Constructor<any>} type - The class to get the decorated projection on methods for.
 * @returns {OnDecoratedProjectionMethod[]} The decorated projection on methods.
 */
export declare function getOnDecoratedMethods(type: Constructor<any>): OnDecoratedProjectionMethod[];
//# sourceMappingURL=onDecorator.d.ts.map