import { BatchCheckPermissionBody, BatchCheckPermissionResult, CheckPermissionResult, ExpandedPermissionTree, PostCheckPermissionBody, PostCheckPermissionOrErrorBody } from '../models/index';
/**
 * Ory APIs
 * # Introduction Documentation for all public and administrative Ory APIs. Administrative APIs can only be accessed with a valid Personal Access Token. Public APIs are mostly used in browsers.  ## SDKs This document describes the APIs available in the Ory Network. The APIs are available as SDKs for the following languages:  | Language       | Download SDK                                                     | Documentation                                                                        | | -------------- | ---------------------------------------------------------------- | ------------------------------------------------------------------------------------ | | Dart           | [pub.dev](https://pub.dev/packages/ory_client)                   | [README](https://github.com/ory/sdk/blob/master/clients/client/dart/README.md)       | | .NET           | [nuget.org](https://www.nuget.org/packages/Ory.Client/)          | [README](https://github.com/ory/sdk/blob/master/clients/client/dotnet/README.md)     | | Elixir         | [hex.pm](https://hex.pm/packages/ory_client)                     | [README](https://github.com/ory/sdk/blob/master/clients/client/elixir/README.md)     | | Go             | [github.com](https://github.com/ory/client-go)                   | [README](https://github.com/ory/sdk/blob/master/clients/client/go/README.md)         | | Java           | [maven.org](https://search.maven.org/artifact/sh.ory/ory-client) | [README](https://github.com/ory/sdk/blob/master/clients/client/java/README.md)       | | JavaScript     | [npmjs.com](https://www.npmjs.com/package/@ory/client)           | [README](https://github.com/ory/sdk/blob/master/clients/client/typescript/README.md) | | JavaScript (With fetch) | [npmjs.com](https://www.npmjs.com/package/@ory/client-fetch)           | [README](https://github.com/ory/sdk/blob/master/clients/client/typescript-fetch/README.md) |  | PHP            | [packagist.org](https://packagist.org/packages/ory/client)       | [README](https://github.com/ory/sdk/blob/master/clients/client/php/README.md)        | | Python         | [pypi.org](https://pypi.org/project/ory-client/)                 | [README](https://github.com/ory/sdk/blob/master/clients/client/python/README.md)     | | Ruby           | [rubygems.org](https://rubygems.org/gems/ory-client)             | [README](https://github.com/ory/sdk/blob/master/clients/client/ruby/README.md)       | | Rust           | [crates.io](https://crates.io/crates/ory-client)                 | [README](https://github.com/ory/sdk/blob/master/clients/client/rust/README.md)       |
 *
 * The version of the OpenAPI document: v1.20.10
 * Contact: support@ory.sh
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import * as runtime from '../runtime';
export interface BatchCheckPermissionRequest {
    maxDepth?: number;
    batchCheckPermissionBody?: BatchCheckPermissionBody;
}
export interface CheckPermissionRequest {
    namespace?: string;
    object?: string;
    relation?: string;
    subjectId?: string;
    subjectSetNamespace?: string;
    subjectSetObject?: string;
    subjectSetRelation?: string;
    maxDepth?: number;
}
export interface CheckPermissionOrErrorRequest {
    namespace?: string;
    object?: string;
    relation?: string;
    subjectId?: string;
    subjectSetNamespace?: string;
    subjectSetObject?: string;
    subjectSetRelation?: string;
    maxDepth?: number;
}
export interface ExpandPermissionsRequest {
    namespace: string;
    object: string;
    relation: string;
    maxDepth?: number;
}
export interface PostCheckPermissionRequest {
    maxDepth?: number;
    postCheckPermissionBody?: PostCheckPermissionBody;
}
export interface PostCheckPermissionOrErrorRequest {
    maxDepth?: number;
    postCheckPermissionOrErrorBody?: PostCheckPermissionOrErrorBody;
}
/**
 * PermissionApi - interface
 *
 * @export
 * @interface PermissionApiInterface
 */
export interface PermissionApiInterface {
    /**
     * To learn how relationship tuples and the check works, head over to [the documentation](https://www.ory.sh/docs/keto/concepts/api-overview).
     * @summary Batch check permissions
     * @param {number} [maxDepth]
     * @param {BatchCheckPermissionBody} [batchCheckPermissionBody]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PermissionApiInterface
     */
    batchCheckPermissionRaw(requestParameters: BatchCheckPermissionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<BatchCheckPermissionResult>>;
    /**
     * To learn how relationship tuples and the check works, head over to [the documentation](https://www.ory.sh/docs/keto/concepts/api-overview).
     * Batch check permissions
     */
    batchCheckPermission(requestParameters: BatchCheckPermissionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<BatchCheckPermissionResult>;
    /**
     * To learn how relationship tuples and the check works, head over to [the documentation](https://www.ory.sh/docs/keto/concepts/api-overview).
     * @summary Check a permission
     * @param {string} [namespace] Namespace of the Relationship
     * @param {string} [object] Object of the Relationship
     * @param {string} [relation] Relation of the Relationship
     * @param {string} [subjectId] SubjectID of the Relationship
     * @param {string} [subjectSetNamespace] Namespace of the Subject Set
     * @param {string} [subjectSetObject] Object of the Subject Set
     * @param {string} [subjectSetRelation] Relation of the Subject Set
     * @param {number} [maxDepth]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PermissionApiInterface
     */
    checkPermissionRaw(requestParameters: CheckPermissionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CheckPermissionResult>>;
    /**
     * To learn how relationship tuples and the check works, head over to [the documentation](https://www.ory.sh/docs/keto/concepts/api-overview).
     * Check a permission
     */
    checkPermission(requestParameters: CheckPermissionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CheckPermissionResult>;
    /**
     * To learn how relationship tuples and the check works, head over to [the documentation](https://www.ory.sh/docs/keto/concepts/api-overview).
     * @summary Check a permission
     * @param {string} [namespace] Namespace of the Relationship
     * @param {string} [object] Object of the Relationship
     * @param {string} [relation] Relation of the Relationship
     * @param {string} [subjectId] SubjectID of the Relationship
     * @param {string} [subjectSetNamespace] Namespace of the Subject Set
     * @param {string} [subjectSetObject] Object of the Subject Set
     * @param {string} [subjectSetRelation] Relation of the Subject Set
     * @param {number} [maxDepth]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PermissionApiInterface
     */
    checkPermissionOrErrorRaw(requestParameters: CheckPermissionOrErrorRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CheckPermissionResult>>;
    /**
     * To learn how relationship tuples and the check works, head over to [the documentation](https://www.ory.sh/docs/keto/concepts/api-overview).
     * Check a permission
     */
    checkPermissionOrError(requestParameters: CheckPermissionOrErrorRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CheckPermissionResult>;
    /**
     * Use this endpoint to expand a relationship tuple into permissions.
     * @summary Expand a Relationship into permissions.
     * @param {string} namespace Namespace of the Subject Set
     * @param {string} object Object of the Subject Set
     * @param {string} relation Relation of the Subject Set
     * @param {number} [maxDepth]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PermissionApiInterface
     */
    expandPermissionsRaw(requestParameters: ExpandPermissionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ExpandedPermissionTree>>;
    /**
     * Use this endpoint to expand a relationship tuple into permissions.
     * Expand a Relationship into permissions.
     */
    expandPermissions(requestParameters: ExpandPermissionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ExpandedPermissionTree>;
    /**
     * To learn how relationship tuples and the check works, head over to [the documentation](https://www.ory.sh/docs/keto/concepts/api-overview).
     * @summary Check a permission
     * @param {number} [maxDepth]
     * @param {PostCheckPermissionBody} [postCheckPermissionBody]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PermissionApiInterface
     */
    postCheckPermissionRaw(requestParameters: PostCheckPermissionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CheckPermissionResult>>;
    /**
     * To learn how relationship tuples and the check works, head over to [the documentation](https://www.ory.sh/docs/keto/concepts/api-overview).
     * Check a permission
     */
    postCheckPermission(requestParameters: PostCheckPermissionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CheckPermissionResult>;
    /**
     * To learn how relationship tuples and the check works, head over to [the documentation](https://www.ory.sh/docs/keto/concepts/api-overview).
     * @summary Check a permission
     * @param {number} [maxDepth]
     * @param {PostCheckPermissionOrErrorBody} [postCheckPermissionOrErrorBody]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof PermissionApiInterface
     */
    postCheckPermissionOrErrorRaw(requestParameters: PostCheckPermissionOrErrorRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CheckPermissionResult>>;
    /**
     * To learn how relationship tuples and the check works, head over to [the documentation](https://www.ory.sh/docs/keto/concepts/api-overview).
     * Check a permission
     */
    postCheckPermissionOrError(requestParameters: PostCheckPermissionOrErrorRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CheckPermissionResult>;
}
/**
 *
 */
export declare class PermissionApi extends runtime.BaseAPI implements PermissionApiInterface {
    /**
     * To learn how relationship tuples and the check works, head over to [the documentation](https://www.ory.sh/docs/keto/concepts/api-overview).
     * Batch check permissions
     */
    batchCheckPermissionRaw(requestParameters: BatchCheckPermissionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<BatchCheckPermissionResult>>;
    /**
     * To learn how relationship tuples and the check works, head over to [the documentation](https://www.ory.sh/docs/keto/concepts/api-overview).
     * Batch check permissions
     */
    batchCheckPermission(requestParameters?: BatchCheckPermissionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<BatchCheckPermissionResult>;
    /**
     * To learn how relationship tuples and the check works, head over to [the documentation](https://www.ory.sh/docs/keto/concepts/api-overview).
     * Check a permission
     */
    checkPermissionRaw(requestParameters: CheckPermissionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CheckPermissionResult>>;
    /**
     * To learn how relationship tuples and the check works, head over to [the documentation](https://www.ory.sh/docs/keto/concepts/api-overview).
     * Check a permission
     */
    checkPermission(requestParameters?: CheckPermissionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CheckPermissionResult>;
    /**
     * To learn how relationship tuples and the check works, head over to [the documentation](https://www.ory.sh/docs/keto/concepts/api-overview).
     * Check a permission
     */
    checkPermissionOrErrorRaw(requestParameters: CheckPermissionOrErrorRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CheckPermissionResult>>;
    /**
     * To learn how relationship tuples and the check works, head over to [the documentation](https://www.ory.sh/docs/keto/concepts/api-overview).
     * Check a permission
     */
    checkPermissionOrError(requestParameters?: CheckPermissionOrErrorRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CheckPermissionResult>;
    /**
     * Use this endpoint to expand a relationship tuple into permissions.
     * Expand a Relationship into permissions.
     */
    expandPermissionsRaw(requestParameters: ExpandPermissionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ExpandedPermissionTree>>;
    /**
     * Use this endpoint to expand a relationship tuple into permissions.
     * Expand a Relationship into permissions.
     */
    expandPermissions(requestParameters: ExpandPermissionsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ExpandedPermissionTree>;
    /**
     * To learn how relationship tuples and the check works, head over to [the documentation](https://www.ory.sh/docs/keto/concepts/api-overview).
     * Check a permission
     */
    postCheckPermissionRaw(requestParameters: PostCheckPermissionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CheckPermissionResult>>;
    /**
     * To learn how relationship tuples and the check works, head over to [the documentation](https://www.ory.sh/docs/keto/concepts/api-overview).
     * Check a permission
     */
    postCheckPermission(requestParameters?: PostCheckPermissionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CheckPermissionResult>;
    /**
     * To learn how relationship tuples and the check works, head over to [the documentation](https://www.ory.sh/docs/keto/concepts/api-overview).
     * Check a permission
     */
    postCheckPermissionOrErrorRaw(requestParameters: PostCheckPermissionOrErrorRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CheckPermissionResult>>;
    /**
     * To learn how relationship tuples and the check works, head over to [the documentation](https://www.ory.sh/docs/keto/concepts/api-overview).
     * Check a permission
     */
    postCheckPermissionOrError(requestParameters?: PostCheckPermissionOrErrorRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CheckPermissionResult>;
}
//# sourceMappingURL=PermissionApi.d.ts.map