import { Class } from '#csharp/code-dom/class';
import { Expression } from '#csharp/code-dom/expression';
import { Method } from '#csharp/code-dom/method';
import { Parameter } from '#csharp/code-dom/parameter';
import { HttpOperation } from '#csharp/lowlevel-generator/code-model';
import { State } from '../generator';
import { CallbackParameter, OperationBodyParameter, OperationParameter } from '../operation/parameter';
export declare class OperationMethod extends Method {
    protected parent: Class;
    operation: HttpOperation;
    protected state: State;
    methodParameters: Array<OperationParameter>;
    bodyParameter?: OperationBodyParameter;
    contextParameter: Parameter;
    senderParameter: Parameter;
    resourceUri: Parameter;
    callbacks: CallbackParameter[];
    constructor(parent: Class, operation: HttpOperation, state: State, objectInitializer?: Partial<OperationMethod>);
    emitCall(returnFromCall: boolean): void;
}
export declare class EventListener {
    protected expression: Expression;
    protected emitSignals: boolean;
    constructor(expression: Expression, emitSignals: boolean);
    signalNoCheck(eventName: Expression, ...additionalParameters: Array<string | Expression>): IterableIterator<string>;
    signal(eventName: Expression, ...additionalParameters: Array<string | Expression>): IterableIterator<string>;
    syncSignal(eventName: Expression, ...additionalParameters: Array<string | Expression>): IterableIterator<string>;
}
export declare class CallMethod extends Method {
    protected parent: Class;
    protected opMethod: OperationMethod;
    protected state: State;
    returnNull: boolean;
    constructor(parent: Class, opMethod: OperationMethod, state: State, objectInitializer?: Partial<OperationMethod>);
    private finalGet;
    private responsesEmitter;
    private responseHandler;
}
export declare class ValidationMethod extends Method {
    protected parent: Class;
    protected opMethod: OperationMethod;
    protected state: State;
    constructor(parent: Class, opMethod: OperationMethod, state: State, objectInitializer?: Partial<OperationMethod>);
}
//# sourceMappingURL=method.d.ts.map