import { CheckOplSyntaxResult, CreateRelationshipBody, Relationship, RelationshipNamespaces, RelationshipPatch, Relationships } 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 CheckOplSyntaxRequest {
    body?: string;
}
export interface CreateRelationshipRequest {
    createRelationshipBody?: CreateRelationshipBody;
}
export interface DeleteRelationshipsRequest {
    namespace?: string;
    object?: string;
    relation?: string;
    subjectId?: string;
    subjectSetNamespace?: string;
    subjectSetObject?: string;
    subjectSetRelation?: string;
}
export interface GetRelationshipsRequest {
    pageToken?: string;
    pageSize?: number;
    namespace?: string;
    object?: string;
    relation?: string;
    subjectId?: string;
    subjectSetNamespace?: string;
    subjectSetObject?: string;
    subjectSetRelation?: string;
}
export interface PatchRelationshipsRequest {
    relationshipPatch?: Array<RelationshipPatch>;
}
/**
 * RelationshipApi - interface
 *
 * @export
 * @interface RelationshipApiInterface
 */
export interface RelationshipApiInterface {
    /**
     * The OPL file is expected in the body of the request.
     * @summary Check the syntax of an OPL file
     * @param {string} [body]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RelationshipApiInterface
     */
    checkOplSyntaxRaw(requestParameters: CheckOplSyntaxRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CheckOplSyntaxResult>>;
    /**
     * The OPL file is expected in the body of the request.
     * Check the syntax of an OPL file
     */
    checkOplSyntax(requestParameters: CheckOplSyntaxRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CheckOplSyntaxResult>;
    /**
     * Use this endpoint to create a relationship.
     * @summary Create a Relationship
     * @param {CreateRelationshipBody} [createRelationshipBody]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RelationshipApiInterface
     */
    createRelationshipRaw(requestParameters: CreateRelationshipRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Relationship>>;
    /**
     * Use this endpoint to create a relationship.
     * Create a Relationship
     */
    createRelationship(requestParameters: CreateRelationshipRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Relationship>;
    /**
     * Use this endpoint to delete relationships
     * @summary Delete Relationships
     * @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 {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RelationshipApiInterface
     */
    deleteRelationshipsRaw(requestParameters: DeleteRelationshipsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>>;
    /**
     * Use this endpoint to delete relationships
     * Delete Relationships
     */
    deleteRelationships(requestParameters: DeleteRelationshipsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void>;
    /**
     * Get all relationships that match the query. Only the namespace field is required.
     * @summary Query relationships
     * @param {string} [pageToken]
     * @param {number} [pageSize]
     * @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 {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RelationshipApiInterface
     */
    getRelationshipsRaw(requestParameters: GetRelationshipsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Relationships>>;
    /**
     * Get all relationships that match the query. Only the namespace field is required.
     * Query relationships
     */
    getRelationships(requestParameters: GetRelationshipsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Relationships>;
    /**
     * Get all namespaces
     * @summary Query namespaces
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RelationshipApiInterface
     */
    listRelationshipNamespacesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RelationshipNamespaces>>;
    /**
     * Get all namespaces
     * Query namespaces
     */
    listRelationshipNamespaces(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RelationshipNamespaces>;
    /**
     * Use this endpoint to patch one or more relationships.
     * @summary Patch Multiple Relationships
     * @param {Array<RelationshipPatch>} [relationshipPatch]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof RelationshipApiInterface
     */
    patchRelationshipsRaw(requestParameters: PatchRelationshipsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>>;
    /**
     * Use this endpoint to patch one or more relationships.
     * Patch Multiple Relationships
     */
    patchRelationships(requestParameters: PatchRelationshipsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void>;
}
/**
 *
 */
export declare class RelationshipApi extends runtime.BaseAPI implements RelationshipApiInterface {
    /**
     * The OPL file is expected in the body of the request.
     * Check the syntax of an OPL file
     */
    checkOplSyntaxRaw(requestParameters: CheckOplSyntaxRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CheckOplSyntaxResult>>;
    /**
     * The OPL file is expected in the body of the request.
     * Check the syntax of an OPL file
     */
    checkOplSyntax(requestParameters?: CheckOplSyntaxRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CheckOplSyntaxResult>;
    /**
     * Use this endpoint to create a relationship.
     * Create a Relationship
     */
    createRelationshipRaw(requestParameters: CreateRelationshipRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Relationship>>;
    /**
     * Use this endpoint to create a relationship.
     * Create a Relationship
     */
    createRelationship(requestParameters?: CreateRelationshipRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Relationship>;
    /**
     * Use this endpoint to delete relationships
     * Delete Relationships
     */
    deleteRelationshipsRaw(requestParameters: DeleteRelationshipsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>>;
    /**
     * Use this endpoint to delete relationships
     * Delete Relationships
     */
    deleteRelationships(requestParameters?: DeleteRelationshipsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void>;
    /**
     * Get all relationships that match the query. Only the namespace field is required.
     * Query relationships
     */
    getRelationshipsRaw(requestParameters: GetRelationshipsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Relationships>>;
    /**
     * Get all relationships that match the query. Only the namespace field is required.
     * Query relationships
     */
    getRelationships(requestParameters?: GetRelationshipsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Relationships>;
    /**
     * Get all namespaces
     * Query namespaces
     */
    listRelationshipNamespacesRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<RelationshipNamespaces>>;
    /**
     * Get all namespaces
     * Query namespaces
     */
    listRelationshipNamespaces(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<RelationshipNamespaces>;
    /**
     * Use this endpoint to patch one or more relationships.
     * Patch Multiple Relationships
     */
    patchRelationshipsRaw(requestParameters: PatchRelationshipsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>>;
    /**
     * Use this endpoint to patch one or more relationships.
     * Patch Multiple Relationships
     */
    patchRelationships(requestParameters?: PatchRelationshipsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void>;
}
//# sourceMappingURL=RelationshipApi.d.ts.map