import { ExtensibleNode } from '../ExtensibleNode';
/**
 * Constructor.
 * @class
 * @extends ExtensibleNode
 * @author eric.wittmann@gmail.com
 */
export declare abstract class OAuthFlows extends ExtensibleNode {
    implicit: ImplicitOAuthFlow;
    password: PasswordOAuthFlow;
    clientCredentials: ClientCredentialsOAuthFlow;
    authorizationCode: AuthorizationCodeOAuthFlow;
    constructor();
    /**
     * Creates an OAuth Flow object.
     * @return {ImplicitOAuthFlow}
     */
    abstract createImplicitOAuthFlow(): ImplicitOAuthFlow;
    /**
     * Creates an OAuth Flow object.
     * @return {PasswordOAuthFlow}
     */
    abstract createPasswordOAuthFlow(): PasswordOAuthFlow;
    /**
     * Creates an OAuth Flow object.
     * @return {ClientCredentialsOAuthFlow}
     */
    abstract createClientCredentialsOAuthFlow(): ClientCredentialsOAuthFlow;
    /**
     * Creates an OAuth Flow object.
     * @return {AuthorizationCodeOAuthFlow}
     */
    abstract createAuthorizationCodeOAuthFlow(): AuthorizationCodeOAuthFlow;
}
import { AuthorizationCodeOAuthFlow } from './AuthorizationCodeOAuthFlow';
import { ClientCredentialsOAuthFlow } from './ClientCredentialsOAuthFlow';
import { PasswordOAuthFlow } from './PasswordOAuthFlow';
import { ImplicitOAuthFlow } from './ImplicitOAuthFlow';
