import { ApplicationCreateParams, ApplicationCreateResponse, ApplicationDeleteParams, ApplicationGetParams, ApplicationGetResponse, ApplicationListResponse, ApplicationRevokeAccessTokenParams, ApplicationRevokeAccessTokenResponse, ApplicationRevokeRefreshTokenParams, ApplicationRevokeRefreshTokenResponse, ApplicationRotateSecretParams, ApplicationRotateSecretResponse, ApplicationUpdateParams, ApplicationUpdateResponse, OystehrClientRequest } from '../..';
import { SDKResource } from '../../client/client';
import { OystehrConfig } from '../../config';
export declare class Application extends SDKResource {
    #private;
    constructor(config: OystehrConfig);
    /**
     * Get a list of Applications. [Applications](https://docs.oystehr.com/oystehr/services/app/applications/) provide authentication in front of the web and mobile apps you build on Oystehr.
     *
     * Access Policy Action: `App:ListAllApplications`
     * Access Policy Resource: `App:Application`
     */
    list(request?: OystehrClientRequest): Promise<ApplicationListResponse>;
    /**
     * Create a new Application. [Applications](https://docs.oystehr.com/oystehr/services/app/applications/) provide authentication in front of the web and mobile apps you build on Oystehr.
     *
     * Access Policy Action: `App:CreateApplication`
     * Access Policy Resource: `App:Application`
     */
    create(params: ApplicationCreateParams, request?: OystehrClientRequest): Promise<ApplicationCreateResponse>;
    /**
     * Get the Application with the provided ID. [Applications](https://docs.oystehr.com/oystehr/services/app/applications/) provide authentication in front of the web and mobile apps you build on Oystehr.
     *
     * Access Policy Action: `App:GetApplication`
     * Access Policy Resource: `App:Application`
     */
    get(params: ApplicationGetParams, request?: OystehrClientRequest): Promise<ApplicationGetResponse>;
    /**
     * Update the Application with the provided ID. [Applications](https://docs.oystehr.com/oystehr/services/app/applications/) provide authentication in front of the web and mobile apps you build on Oystehr.
     *
     * Access Policy Action: `App:UpdateApplication`
     * Access Policy Resource: `App:Application`
     */
    update(params: ApplicationUpdateParams, request?: OystehrClientRequest): Promise<ApplicationUpdateResponse>;
    /**
     * Delete the Application with the provided ID. [Applications](https://docs.oystehr.com/oystehr/services/app/applications/) provide authentication in front of the web and mobile apps you build on Oystehr.
     *
     * Access Policy Action: `App:DeleteApplication`
     * Access Policy Resource: `App:Application`
     */
    delete(params: ApplicationDeleteParams, request?: OystehrClientRequest): Promise<void>;
    /**
     * Rotate client's secrete associated with an application.
     *
     * Access Policy Action: `App:RotateApplicationSecret`
     * Access Policy Resource: `App:Application`
     */
    rotateSecret(params: ApplicationRotateSecretParams, request?: OystehrClientRequest): Promise<ApplicationRotateSecretResponse>;
    /**
     * Revokes user's refresh token issued for the application.
     *
     * Access Policy Action: `App:RevokeRefreshToken`
     * Access Policy Resource: `App:Application`
     */
    revokeRefreshToken(params: ApplicationRevokeRefreshTokenParams, request?: OystehrClientRequest): Promise<ApplicationRevokeRefreshTokenResponse>;
    /**
     * Revokes user's access token issued for the application.
     *
     * Access Policy Action: `App:RevokeAccessToken`
     * Access Policy Resource: `App:Application`
     */
    revokeAccessToken(params: ApplicationRevokeAccessTokenParams, request?: OystehrClientRequest): Promise<ApplicationRevokeAccessTokenResponse>;
}
