/// <reference types="node" />
import { ChannelCredentials, ChannelOptions, UntypedServiceImplementation, handleUnaryCall, Client, ClientUnaryCall, Metadata, CallOptions, ServiceError } from '@grpc/grpc-js';
import _m0 from 'protobufjs/minimal';
import { Duration } from '../../../../../google/protobuf/duration';
import { BindingType, FederationSecuritySettings, Federation } from '../../../../../yandex/cloud/organizationmanager/v1/saml/federation';
import { FieldMask } from '../../../../../google/protobuf/field_mask';
import { UserAccount } from '../../../../../yandex/cloud/organizationmanager/v1/user_account';
import { Operation } from '../../../../../yandex/cloud/operation/operation';
export declare const protobufPackage = "yandex.cloud.organizationmanager.v1.saml";
export interface GetFederationRequest {
    /**
     * ID of the federation to return.
     * To get the federation ID, make a [FederationService.List] request.
     */
    federationId: string;
}
export interface ListFederationsRequest {
    /**
     * ID of the organization to list federations in.
     * To get the organization ID, make a [yandex.cloud.organizationmanager.v1.OrganizationService.List] request.
     */
    organizationId: string;
    /**
     * The maximum number of results per page to return. If the number of available
     * results is larger than [page_size],
     * the service returns a [ListFederationsResponse.next_page_token]
     * that can be used to get the next page of results in subsequent list requests.
     * Default value: 100
     */
    pageSize: number;
    /**
     * Page token. To get the next page of results, set [page_token]
     * to the [ListFederationsResponse.next_page_token]
     * returned by a previous list request.
     */
    pageToken: string;
    /**
     * A filter expression that filters resources listed in the response.
     * The expression must specify:
     * 1. The field name. Currently you can use filtering only on the [Federation.name] field.
     * 2. An `=` operator.
     * 3. The value in double quotes (`"`). Must be 3-63 characters long and match the regular expression `[a-z][-a-z0-9]{1,61}[a-z0-9]`.
     */
    filter: string;
}
export interface ListFederationsResponse {
    /** List of federations. */
    federations: Federation[];
    /**
     * This token allows you to get the next page of results for list requests. If the number of results
     * is larger than [ListFederationsRequest.page_size], use
     * the [next_page_token] as the value
     * for the [ListFederationsRequest.page_token] query parameter
     * in the next list request. Each subsequent list request will have its own
     * [next_page_token] to continue paging through the results.
     */
    nextPageToken: string;
}
export interface CreateFederationRequest {
    /**
     * ID of the organization to create a federation in.
     * To get the organization ID, make a [yandex.cloud.organizationmanager.v1.OrganizationService.List] request.
     */
    organizationId: string;
    /**
     * Name of the federation.
     * The name must be unique within the organization.
     */
    name: string;
    /** Description of the federation. */
    description: string;
    /**
     * Browser cookie lifetime in seconds.
     * If the cookie is still valid, the management console
     * authenticates the user immediately and redirects them to the home page.
     * The default value is `8h`.
     */
    cookieMaxAge?: Duration;
    /**
     * Add new users automatically on successful authentication.
     * The user becomes member of the organization automatically,
     * but you need to grant other roles to them.
     *
     * If the value is `false`, users who aren't added to the organization
     * can't log in, even if they have authenticated on your server.
     */
    autoCreateAccountOnLogin: boolean;
    /**
     * ID of the IdP server to be used for authentication.
     * The IdP server also responds to IAM with this ID after the user authenticates.
     */
    issuer: string;
    /**
     * Single sign-on endpoint binding type. Most Identity Providers support the `POST` binding type.
     *
     * SAML Binding is a mapping of a SAML protocol message onto standard messaging
     * formats and/or communications protocols.
     */
    ssoBinding: BindingType;
    /**
     * Single sign-on endpoint URL.
     * Specify the link to the IdP login page here.
     */
    ssoUrl: string;
    /** Federation security settings. */
    securitySettings?: FederationSecuritySettings;
    /** Use case insensitive Name IDs. */
    caseInsensitiveNameIds: boolean;
    /** Resource labels as `` key:value `` pairs. */
    labels: {
        [key: string]: string;
    };
}
export interface CreateFederationRequest_LabelsEntry {
    key: string;
    value: string;
}
export interface CreateFederationMetadata {
    /** ID of the federation that is being created. */
    federationId: string;
}
export interface UpdateFederationRequest {
    /**
     * ID of the federation to update.
     * To get the federation ID, make a [FederationService.List] request.
     */
    federationId: string;
    /** Field mask that specifies which fields of the federation are going to be updated. */
    updateMask?: FieldMask;
    /**
     * Name of the federation.
     * The name must be unique within the organization.
     */
    name: string;
    /** Description of the federation. */
    description: string;
    /**
     * Browser cookie lifetime in seconds.
     * If the cookie is still valid, the management console
     * authenticates the user immediately and redirects them to the home page.
     * The default value is `8h`.
     */
    cookieMaxAge?: Duration;
    /**
     * Add new users automatically on successful authentication.
     * The user becomes member of the organization automatically,
     * but you need to grant other roles to them.
     *
     * If the value is `false`, users who aren't added to the organization
     * can't log in, even if they have authenticated on your server.
     */
    autoCreateAccountOnLogin: boolean;
    /**
     * ID of the IdP server to be used for authentication.
     * The IdP server also responds to IAM with this ID after the user authenticates.
     */
    issuer: string;
    /**
     * Single sign-on endpoint binding type. Most Identity Providers support the `POST` binding type.
     *
     * SAML Binding is a mapping of a SAML protocol message onto standard messaging
     * formats and/or communications protocols.
     */
    ssoBinding: BindingType;
    /**
     * Single sign-on endpoint URL.
     * Specify the link to the IdP login page here.
     */
    ssoUrl: string;
    /** Federation security settings. */
    securitySettings?: FederationSecuritySettings;
    /** Use case insensitive name ids. */
    caseInsensitiveNameIds: boolean;
    /** Resource labels as `` key:value `` pairs. */
    labels: {
        [key: string]: string;
    };
}
export interface UpdateFederationRequest_LabelsEntry {
    key: string;
    value: string;
}
export interface UpdateFederationMetadata {
    /** ID of the federation that is being updated. */
    federationId: string;
}
export interface DeleteFederationRequest {
    /**
     * ID of the federation to delete.
     * To get the federation ID, make a [FederationService.List] request.
     */
    federationId: string;
}
export interface DeleteFederationMetadata {
    /** ID of the federation that is being deleted. */
    federationId: string;
}
export interface AddFederatedUserAccountsRequest {
    /** ID of the federation to add users. */
    federationId: string;
    /**
     * Name IDs returned by the Identity Provider (IdP) on successful authentication.
     * These may be UPNs or user email addresses.
     */
    nameIds: string[];
}
export interface AddFederatedUserAccountsMetadata {
    /** ID of the federation that is being altered. */
    federationId: string;
}
export interface AddFederatedUserAccountsResponse {
    /** List of users created by [FederationService.AddUserAccounts] request. */
    userAccounts: UserAccount[];
}
export interface DeleteFederatedUserAccountsRequest {
    /** ID of the federation to delete users from. */
    federationId: string;
    /** List of subjects to delete. */
    subjectIds: string[];
}
export interface DeleteFederatedUserAccountsMetadata {
    /** ID of the federation that is being altered. */
    federationId: string;
}
export interface DeleteFederatedUserAccountsResponse {
    /** List of subjects deleted by [FederationService.DeleteUserAccounts] request. */
    deletedSubjects: string[];
    /** List of subjects found in [FederationService.DeleteUserAccounts] request that do not exist. */
    nonExistingSubjects: string[];
}
export interface ListFederatedUserAccountsRequest {
    /** ID of the federation to list user accounts for. */
    federationId: string;
    /**
     * The maximum number of results per page to return. If the number of available
     * results is larger than [page_size], the service returns a [ListFederatedUserAccountsResponse.next_page_token]
     * that can be used to get the next page of results in subsequent list requests.
     * Default value: 100.
     */
    pageSize: number;
    /**
     * Page token. To get the next page of results, set [page_token]
     * to the [ListFederatedUserAccountsResponse.next_page_token]
     * returned by a previous list request.
     */
    pageToken: string;
    /**
     * A filter expression that filters resources listed in the response.
     * The expression must specify:
     * 1. The field name. Currently you can use filtering only on the [name_id] field.
     * 2. An `=` operator.
     * 3. The value in double quotes (`"`). Must be 1-1000 characters long and match the regular expression
     *   `[a-z0-9A-Z/@_.\-=+*\\]+`.
     */
    filter: string;
}
export interface ListFederatedUserAccountsResponse {
    /** List of user accounts for the specified federation. */
    userAccounts: UserAccount[];
    /**
     * This token allows you to get the next page of results for list requests. If the number of results
     * is larger than [ListFederatedUserAccountsRequest.page_size], use the [next_page_token] as the value
     * for the [ListFederatedUserAccountsRequest.page_token] query parameter in the next list request.
     * Each subsequent list request will have its own [next_page_token] to continue paging through the results.
     */
    nextPageToken: string;
}
export interface ListFederationOperationsRequest {
    /** ID of the federation to list operations for. */
    federationId: string;
    /**
     * The maximum number of results per page to return. If the number of available
     * results is larger than [page_size], the service returns a [ListFederationOperationsResponse.next_page_token]
     * that can be used to get the next page of results in subsequent list requests.
     * Default value: 100.
     */
    pageSize: number;
    /**
     * Page token. To get the next page of results, set [page_token]
     * to the [ListFederationOperationsResponse.next_page_token]
     * returned by a previous list request.
     */
    pageToken: string;
}
export interface ListFederationOperationsResponse {
    /** List of operations for the specified federation. */
    operations: Operation[];
    /**
     * This token allows you to get the next page of results for list requests. If the number of results
     * is larger than [ListFederationOperationsRequest.page_size], use the [next_page_token] as the value
     * for the [ListFederationOperationsRequest.page_token] query parameter in the next list request.
     * Each subsequent list request will have its own [next_page_token] to continue paging through the results.
     */
    nextPageToken: string;
}
export declare const GetFederationRequest: {
    encode(message: GetFederationRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GetFederationRequest;
    fromJSON(object: any): GetFederationRequest;
    toJSON(message: GetFederationRequest): unknown;
    fromPartial<I extends {
        federationId?: string | undefined;
    } & {
        federationId?: string | undefined;
    } & Record<Exclude<keyof I, "federationId">, never>>(object: I): GetFederationRequest;
};
export declare const ListFederationsRequest: {
    encode(message: ListFederationsRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListFederationsRequest;
    fromJSON(object: any): ListFederationsRequest;
    toJSON(message: ListFederationsRequest): unknown;
    fromPartial<I extends {
        organizationId?: string | undefined;
        pageSize?: number | undefined;
        pageToken?: string | undefined;
        filter?: string | undefined;
    } & {
        organizationId?: string | undefined;
        pageSize?: number | undefined;
        pageToken?: string | undefined;
        filter?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListFederationsRequest>, never>>(object: I): ListFederationsRequest;
};
export declare const ListFederationsResponse: {
    encode(message: ListFederationsResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListFederationsResponse;
    fromJSON(object: any): ListFederationsResponse;
    toJSON(message: ListFederationsResponse): unknown;
    fromPartial<I extends {
        federations?: {
            id?: string | undefined;
            organizationId?: string | undefined;
            name?: string | undefined;
            description?: string | undefined;
            createdAt?: Date | undefined;
            cookieMaxAge?: {
                seconds?: number | undefined;
                nanos?: number | undefined;
            } | undefined;
            autoCreateAccountOnLogin?: boolean | undefined;
            issuer?: string | undefined;
            ssoBinding?: BindingType | undefined;
            ssoUrl?: string | undefined;
            securitySettings?: {
                encryptedAssertions?: boolean | undefined;
                forceAuthn?: boolean | undefined;
            } | undefined;
            caseInsensitiveNameIds?: boolean | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
        }[] | undefined;
        nextPageToken?: string | undefined;
    } & {
        federations?: ({
            id?: string | undefined;
            organizationId?: string | undefined;
            name?: string | undefined;
            description?: string | undefined;
            createdAt?: Date | undefined;
            cookieMaxAge?: {
                seconds?: number | undefined;
                nanos?: number | undefined;
            } | undefined;
            autoCreateAccountOnLogin?: boolean | undefined;
            issuer?: string | undefined;
            ssoBinding?: BindingType | undefined;
            ssoUrl?: string | undefined;
            securitySettings?: {
                encryptedAssertions?: boolean | undefined;
                forceAuthn?: boolean | undefined;
            } | undefined;
            caseInsensitiveNameIds?: boolean | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
        }[] & ({
            id?: string | undefined;
            organizationId?: string | undefined;
            name?: string | undefined;
            description?: string | undefined;
            createdAt?: Date | undefined;
            cookieMaxAge?: {
                seconds?: number | undefined;
                nanos?: number | undefined;
            } | undefined;
            autoCreateAccountOnLogin?: boolean | undefined;
            issuer?: string | undefined;
            ssoBinding?: BindingType | undefined;
            ssoUrl?: string | undefined;
            securitySettings?: {
                encryptedAssertions?: boolean | undefined;
                forceAuthn?: boolean | undefined;
            } | undefined;
            caseInsensitiveNameIds?: boolean | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
        } & {
            id?: string | undefined;
            organizationId?: string | undefined;
            name?: string | undefined;
            description?: string | undefined;
            createdAt?: Date | undefined;
            cookieMaxAge?: ({
                seconds?: number | undefined;
                nanos?: number | undefined;
            } & {
                seconds?: number | undefined;
                nanos?: number | undefined;
            } & Record<Exclude<keyof I["federations"][number]["cookieMaxAge"], keyof Duration>, never>) | undefined;
            autoCreateAccountOnLogin?: boolean | undefined;
            issuer?: string | undefined;
            ssoBinding?: BindingType | undefined;
            ssoUrl?: string | undefined;
            securitySettings?: ({
                encryptedAssertions?: boolean | undefined;
                forceAuthn?: boolean | undefined;
            } & {
                encryptedAssertions?: boolean | undefined;
                forceAuthn?: boolean | undefined;
            } & Record<Exclude<keyof I["federations"][number]["securitySettings"], keyof FederationSecuritySettings>, never>) | undefined;
            caseInsensitiveNameIds?: boolean | undefined;
            labels?: ({
                [x: string]: string | undefined;
            } & {
                [x: string]: string | undefined;
            } & Record<Exclude<keyof I["federations"][number]["labels"], string | number>, never>) | undefined;
        } & Record<Exclude<keyof I["federations"][number], keyof Federation>, never>)[] & Record<Exclude<keyof I["federations"], keyof {
            id?: string | undefined;
            organizationId?: string | undefined;
            name?: string | undefined;
            description?: string | undefined;
            createdAt?: Date | undefined;
            cookieMaxAge?: {
                seconds?: number | undefined;
                nanos?: number | undefined;
            } | undefined;
            autoCreateAccountOnLogin?: boolean | undefined;
            issuer?: string | undefined;
            ssoBinding?: BindingType | undefined;
            ssoUrl?: string | undefined;
            securitySettings?: {
                encryptedAssertions?: boolean | undefined;
                forceAuthn?: boolean | undefined;
            } | undefined;
            caseInsensitiveNameIds?: boolean | undefined;
            labels?: {
                [x: string]: string | undefined;
            } | undefined;
        }[]>, never>) | undefined;
        nextPageToken?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListFederationsResponse>, never>>(object: I): ListFederationsResponse;
};
export declare const CreateFederationRequest: {
    encode(message: CreateFederationRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreateFederationRequest;
    fromJSON(object: any): CreateFederationRequest;
    toJSON(message: CreateFederationRequest): unknown;
    fromPartial<I extends {
        organizationId?: string | undefined;
        name?: string | undefined;
        description?: string | undefined;
        cookieMaxAge?: {
            seconds?: number | undefined;
            nanos?: number | undefined;
        } | undefined;
        autoCreateAccountOnLogin?: boolean | undefined;
        issuer?: string | undefined;
        ssoBinding?: BindingType | undefined;
        ssoUrl?: string | undefined;
        securitySettings?: {
            encryptedAssertions?: boolean | undefined;
            forceAuthn?: boolean | undefined;
        } | undefined;
        caseInsensitiveNameIds?: boolean | undefined;
        labels?: {
            [x: string]: string | undefined;
        } | undefined;
    } & {
        organizationId?: string | undefined;
        name?: string | undefined;
        description?: string | undefined;
        cookieMaxAge?: ({
            seconds?: number | undefined;
            nanos?: number | undefined;
        } & {
            seconds?: number | undefined;
            nanos?: number | undefined;
        } & Record<Exclude<keyof I["cookieMaxAge"], keyof Duration>, never>) | undefined;
        autoCreateAccountOnLogin?: boolean | undefined;
        issuer?: string | undefined;
        ssoBinding?: BindingType | undefined;
        ssoUrl?: string | undefined;
        securitySettings?: ({
            encryptedAssertions?: boolean | undefined;
            forceAuthn?: boolean | undefined;
        } & {
            encryptedAssertions?: boolean | undefined;
            forceAuthn?: boolean | undefined;
        } & Record<Exclude<keyof I["securitySettings"], keyof FederationSecuritySettings>, never>) | undefined;
        caseInsensitiveNameIds?: boolean | undefined;
        labels?: ({
            [x: string]: string | undefined;
        } & {
            [x: string]: string | undefined;
        } & Record<Exclude<keyof I["labels"], string | number>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof CreateFederationRequest>, never>>(object: I): CreateFederationRequest;
};
export declare const CreateFederationRequest_LabelsEntry: {
    encode(message: CreateFederationRequest_LabelsEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreateFederationRequest_LabelsEntry;
    fromJSON(object: any): CreateFederationRequest_LabelsEntry;
    toJSON(message: CreateFederationRequest_LabelsEntry): unknown;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof CreateFederationRequest_LabelsEntry>, never>>(object: I): CreateFederationRequest_LabelsEntry;
};
export declare const CreateFederationMetadata: {
    encode(message: CreateFederationMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): CreateFederationMetadata;
    fromJSON(object: any): CreateFederationMetadata;
    toJSON(message: CreateFederationMetadata): unknown;
    fromPartial<I extends {
        federationId?: string | undefined;
    } & {
        federationId?: string | undefined;
    } & Record<Exclude<keyof I, "federationId">, never>>(object: I): CreateFederationMetadata;
};
export declare const UpdateFederationRequest: {
    encode(message: UpdateFederationRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateFederationRequest;
    fromJSON(object: any): UpdateFederationRequest;
    toJSON(message: UpdateFederationRequest): unknown;
    fromPartial<I extends {
        federationId?: string | undefined;
        updateMask?: {
            paths?: string[] | undefined;
        } | undefined;
        name?: string | undefined;
        description?: string | undefined;
        cookieMaxAge?: {
            seconds?: number | undefined;
            nanos?: number | undefined;
        } | undefined;
        autoCreateAccountOnLogin?: boolean | undefined;
        issuer?: string | undefined;
        ssoBinding?: BindingType | undefined;
        ssoUrl?: string | undefined;
        securitySettings?: {
            encryptedAssertions?: boolean | undefined;
            forceAuthn?: boolean | undefined;
        } | undefined;
        caseInsensitiveNameIds?: boolean | undefined;
        labels?: {
            [x: string]: string | undefined;
        } | undefined;
    } & {
        federationId?: string | undefined;
        updateMask?: ({
            paths?: string[] | undefined;
        } & {
            paths?: (string[] & string[] & Record<Exclude<keyof I["updateMask"]["paths"], keyof string[]>, never>) | undefined;
        } & Record<Exclude<keyof I["updateMask"], "paths">, never>) | undefined;
        name?: string | undefined;
        description?: string | undefined;
        cookieMaxAge?: ({
            seconds?: number | undefined;
            nanos?: number | undefined;
        } & {
            seconds?: number | undefined;
            nanos?: number | undefined;
        } & Record<Exclude<keyof I["cookieMaxAge"], keyof Duration>, never>) | undefined;
        autoCreateAccountOnLogin?: boolean | undefined;
        issuer?: string | undefined;
        ssoBinding?: BindingType | undefined;
        ssoUrl?: string | undefined;
        securitySettings?: ({
            encryptedAssertions?: boolean | undefined;
            forceAuthn?: boolean | undefined;
        } & {
            encryptedAssertions?: boolean | undefined;
            forceAuthn?: boolean | undefined;
        } & Record<Exclude<keyof I["securitySettings"], keyof FederationSecuritySettings>, never>) | undefined;
        caseInsensitiveNameIds?: boolean | undefined;
        labels?: ({
            [x: string]: string | undefined;
        } & {
            [x: string]: string | undefined;
        } & Record<Exclude<keyof I["labels"], string | number>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof UpdateFederationRequest>, never>>(object: I): UpdateFederationRequest;
};
export declare const UpdateFederationRequest_LabelsEntry: {
    encode(message: UpdateFederationRequest_LabelsEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateFederationRequest_LabelsEntry;
    fromJSON(object: any): UpdateFederationRequest_LabelsEntry;
    toJSON(message: UpdateFederationRequest_LabelsEntry): unknown;
    fromPartial<I extends {
        key?: string | undefined;
        value?: string | undefined;
    } & {
        key?: string | undefined;
        value?: string | undefined;
    } & Record<Exclude<keyof I, keyof UpdateFederationRequest_LabelsEntry>, never>>(object: I): UpdateFederationRequest_LabelsEntry;
};
export declare const UpdateFederationMetadata: {
    encode(message: UpdateFederationMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): UpdateFederationMetadata;
    fromJSON(object: any): UpdateFederationMetadata;
    toJSON(message: UpdateFederationMetadata): unknown;
    fromPartial<I extends {
        federationId?: string | undefined;
    } & {
        federationId?: string | undefined;
    } & Record<Exclude<keyof I, "federationId">, never>>(object: I): UpdateFederationMetadata;
};
export declare const DeleteFederationRequest: {
    encode(message: DeleteFederationRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteFederationRequest;
    fromJSON(object: any): DeleteFederationRequest;
    toJSON(message: DeleteFederationRequest): unknown;
    fromPartial<I extends {
        federationId?: string | undefined;
    } & {
        federationId?: string | undefined;
    } & Record<Exclude<keyof I, "federationId">, never>>(object: I): DeleteFederationRequest;
};
export declare const DeleteFederationMetadata: {
    encode(message: DeleteFederationMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteFederationMetadata;
    fromJSON(object: any): DeleteFederationMetadata;
    toJSON(message: DeleteFederationMetadata): unknown;
    fromPartial<I extends {
        federationId?: string | undefined;
    } & {
        federationId?: string | undefined;
    } & Record<Exclude<keyof I, "federationId">, never>>(object: I): DeleteFederationMetadata;
};
export declare const AddFederatedUserAccountsRequest: {
    encode(message: AddFederatedUserAccountsRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): AddFederatedUserAccountsRequest;
    fromJSON(object: any): AddFederatedUserAccountsRequest;
    toJSON(message: AddFederatedUserAccountsRequest): unknown;
    fromPartial<I extends {
        federationId?: string | undefined;
        nameIds?: string[] | undefined;
    } & {
        federationId?: string | undefined;
        nameIds?: (string[] & string[] & Record<Exclude<keyof I["nameIds"], keyof string[]>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof AddFederatedUserAccountsRequest>, never>>(object: I): AddFederatedUserAccountsRequest;
};
export declare const AddFederatedUserAccountsMetadata: {
    encode(message: AddFederatedUserAccountsMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): AddFederatedUserAccountsMetadata;
    fromJSON(object: any): AddFederatedUserAccountsMetadata;
    toJSON(message: AddFederatedUserAccountsMetadata): unknown;
    fromPartial<I extends {
        federationId?: string | undefined;
    } & {
        federationId?: string | undefined;
    } & Record<Exclude<keyof I, "federationId">, never>>(object: I): AddFederatedUserAccountsMetadata;
};
export declare const AddFederatedUserAccountsResponse: {
    encode(message: AddFederatedUserAccountsResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): AddFederatedUserAccountsResponse;
    fromJSON(object: any): AddFederatedUserAccountsResponse;
    toJSON(message: AddFederatedUserAccountsResponse): unknown;
    fromPartial<I extends {
        userAccounts?: {
            id?: string | undefined;
            yandexPassportUserAccount?: {
                login?: string | undefined;
                defaultEmail?: string | undefined;
            } | undefined;
            samlUserAccount?: {
                federationId?: string | undefined;
                nameId?: string | undefined;
                attributes?: {
                    [x: string]: {
                        value?: string[] | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
        }[] | undefined;
    } & {
        userAccounts?: ({
            id?: string | undefined;
            yandexPassportUserAccount?: {
                login?: string | undefined;
                defaultEmail?: string | undefined;
            } | undefined;
            samlUserAccount?: {
                federationId?: string | undefined;
                nameId?: string | undefined;
                attributes?: {
                    [x: string]: {
                        value?: string[] | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
        }[] & ({
            id?: string | undefined;
            yandexPassportUserAccount?: {
                login?: string | undefined;
                defaultEmail?: string | undefined;
            } | undefined;
            samlUserAccount?: {
                federationId?: string | undefined;
                nameId?: string | undefined;
                attributes?: {
                    [x: string]: {
                        value?: string[] | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
        } & {
            id?: string | undefined;
            yandexPassportUserAccount?: ({
                login?: string | undefined;
                defaultEmail?: string | undefined;
            } & {
                login?: string | undefined;
                defaultEmail?: string | undefined;
            } & Record<Exclude<keyof I["userAccounts"][number]["yandexPassportUserAccount"], keyof import("../../../../../yandex/cloud/organizationmanager/v1/user_account").YandexPassportUserAccount>, never>) | undefined;
            samlUserAccount?: ({
                federationId?: string | undefined;
                nameId?: string | undefined;
                attributes?: {
                    [x: string]: {
                        value?: string[] | undefined;
                    } | undefined;
                } | undefined;
            } & {
                federationId?: string | undefined;
                nameId?: string | undefined;
                attributes?: ({
                    [x: string]: {
                        value?: string[] | undefined;
                    } | undefined;
                } & {
                    [x: string]: ({
                        value?: string[] | undefined;
                    } & {
                        value?: (string[] & string[] & Record<Exclude<keyof I["userAccounts"][number]["samlUserAccount"]["attributes"][string]["value"], keyof string[]>, never>) | undefined;
                    } & Record<Exclude<keyof I["userAccounts"][number]["samlUserAccount"]["attributes"][string], "value">, never>) | undefined;
                } & Record<Exclude<keyof I["userAccounts"][number]["samlUserAccount"]["attributes"], string | number>, never>) | undefined;
            } & Record<Exclude<keyof I["userAccounts"][number]["samlUserAccount"], keyof import("../../../../../yandex/cloud/organizationmanager/v1/user_account").SamlUserAccount>, never>) | undefined;
        } & Record<Exclude<keyof I["userAccounts"][number], keyof UserAccount>, never>)[] & Record<Exclude<keyof I["userAccounts"], keyof {
            id?: string | undefined;
            yandexPassportUserAccount?: {
                login?: string | undefined;
                defaultEmail?: string | undefined;
            } | undefined;
            samlUserAccount?: {
                federationId?: string | undefined;
                nameId?: string | undefined;
                attributes?: {
                    [x: string]: {
                        value?: string[] | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
        }[]>, never>) | undefined;
    } & Record<Exclude<keyof I, "userAccounts">, never>>(object: I): AddFederatedUserAccountsResponse;
};
export declare const DeleteFederatedUserAccountsRequest: {
    encode(message: DeleteFederatedUserAccountsRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteFederatedUserAccountsRequest;
    fromJSON(object: any): DeleteFederatedUserAccountsRequest;
    toJSON(message: DeleteFederatedUserAccountsRequest): unknown;
    fromPartial<I extends {
        federationId?: string | undefined;
        subjectIds?: string[] | undefined;
    } & {
        federationId?: string | undefined;
        subjectIds?: (string[] & string[] & Record<Exclude<keyof I["subjectIds"], keyof string[]>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof DeleteFederatedUserAccountsRequest>, never>>(object: I): DeleteFederatedUserAccountsRequest;
};
export declare const DeleteFederatedUserAccountsMetadata: {
    encode(message: DeleteFederatedUserAccountsMetadata, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteFederatedUserAccountsMetadata;
    fromJSON(object: any): DeleteFederatedUserAccountsMetadata;
    toJSON(message: DeleteFederatedUserAccountsMetadata): unknown;
    fromPartial<I extends {
        federationId?: string | undefined;
    } & {
        federationId?: string | undefined;
    } & Record<Exclude<keyof I, "federationId">, never>>(object: I): DeleteFederatedUserAccountsMetadata;
};
export declare const DeleteFederatedUserAccountsResponse: {
    encode(message: DeleteFederatedUserAccountsResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): DeleteFederatedUserAccountsResponse;
    fromJSON(object: any): DeleteFederatedUserAccountsResponse;
    toJSON(message: DeleteFederatedUserAccountsResponse): unknown;
    fromPartial<I extends {
        deletedSubjects?: string[] | undefined;
        nonExistingSubjects?: string[] | undefined;
    } & {
        deletedSubjects?: (string[] & string[] & Record<Exclude<keyof I["deletedSubjects"], keyof string[]>, never>) | undefined;
        nonExistingSubjects?: (string[] & string[] & Record<Exclude<keyof I["nonExistingSubjects"], keyof string[]>, never>) | undefined;
    } & Record<Exclude<keyof I, keyof DeleteFederatedUserAccountsResponse>, never>>(object: I): DeleteFederatedUserAccountsResponse;
};
export declare const ListFederatedUserAccountsRequest: {
    encode(message: ListFederatedUserAccountsRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListFederatedUserAccountsRequest;
    fromJSON(object: any): ListFederatedUserAccountsRequest;
    toJSON(message: ListFederatedUserAccountsRequest): unknown;
    fromPartial<I extends {
        federationId?: string | undefined;
        pageSize?: number | undefined;
        pageToken?: string | undefined;
        filter?: string | undefined;
    } & {
        federationId?: string | undefined;
        pageSize?: number | undefined;
        pageToken?: string | undefined;
        filter?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListFederatedUserAccountsRequest>, never>>(object: I): ListFederatedUserAccountsRequest;
};
export declare const ListFederatedUserAccountsResponse: {
    encode(message: ListFederatedUserAccountsResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListFederatedUserAccountsResponse;
    fromJSON(object: any): ListFederatedUserAccountsResponse;
    toJSON(message: ListFederatedUserAccountsResponse): unknown;
    fromPartial<I extends {
        userAccounts?: {
            id?: string | undefined;
            yandexPassportUserAccount?: {
                login?: string | undefined;
                defaultEmail?: string | undefined;
            } | undefined;
            samlUserAccount?: {
                federationId?: string | undefined;
                nameId?: string | undefined;
                attributes?: {
                    [x: string]: {
                        value?: string[] | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
        }[] | undefined;
        nextPageToken?: string | undefined;
    } & {
        userAccounts?: ({
            id?: string | undefined;
            yandexPassportUserAccount?: {
                login?: string | undefined;
                defaultEmail?: string | undefined;
            } | undefined;
            samlUserAccount?: {
                federationId?: string | undefined;
                nameId?: string | undefined;
                attributes?: {
                    [x: string]: {
                        value?: string[] | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
        }[] & ({
            id?: string | undefined;
            yandexPassportUserAccount?: {
                login?: string | undefined;
                defaultEmail?: string | undefined;
            } | undefined;
            samlUserAccount?: {
                federationId?: string | undefined;
                nameId?: string | undefined;
                attributes?: {
                    [x: string]: {
                        value?: string[] | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
        } & {
            id?: string | undefined;
            yandexPassportUserAccount?: ({
                login?: string | undefined;
                defaultEmail?: string | undefined;
            } & {
                login?: string | undefined;
                defaultEmail?: string | undefined;
            } & Record<Exclude<keyof I["userAccounts"][number]["yandexPassportUserAccount"], keyof import("../../../../../yandex/cloud/organizationmanager/v1/user_account").YandexPassportUserAccount>, never>) | undefined;
            samlUserAccount?: ({
                federationId?: string | undefined;
                nameId?: string | undefined;
                attributes?: {
                    [x: string]: {
                        value?: string[] | undefined;
                    } | undefined;
                } | undefined;
            } & {
                federationId?: string | undefined;
                nameId?: string | undefined;
                attributes?: ({
                    [x: string]: {
                        value?: string[] | undefined;
                    } | undefined;
                } & {
                    [x: string]: ({
                        value?: string[] | undefined;
                    } & {
                        value?: (string[] & string[] & Record<Exclude<keyof I["userAccounts"][number]["samlUserAccount"]["attributes"][string]["value"], keyof string[]>, never>) | undefined;
                    } & Record<Exclude<keyof I["userAccounts"][number]["samlUserAccount"]["attributes"][string], "value">, never>) | undefined;
                } & Record<Exclude<keyof I["userAccounts"][number]["samlUserAccount"]["attributes"], string | number>, never>) | undefined;
            } & Record<Exclude<keyof I["userAccounts"][number]["samlUserAccount"], keyof import("../../../../../yandex/cloud/organizationmanager/v1/user_account").SamlUserAccount>, never>) | undefined;
        } & Record<Exclude<keyof I["userAccounts"][number], keyof UserAccount>, never>)[] & Record<Exclude<keyof I["userAccounts"], keyof {
            id?: string | undefined;
            yandexPassportUserAccount?: {
                login?: string | undefined;
                defaultEmail?: string | undefined;
            } | undefined;
            samlUserAccount?: {
                federationId?: string | undefined;
                nameId?: string | undefined;
                attributes?: {
                    [x: string]: {
                        value?: string[] | undefined;
                    } | undefined;
                } | undefined;
            } | undefined;
        }[]>, never>) | undefined;
        nextPageToken?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListFederatedUserAccountsResponse>, never>>(object: I): ListFederatedUserAccountsResponse;
};
export declare const ListFederationOperationsRequest: {
    encode(message: ListFederationOperationsRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListFederationOperationsRequest;
    fromJSON(object: any): ListFederationOperationsRequest;
    toJSON(message: ListFederationOperationsRequest): unknown;
    fromPartial<I extends {
        federationId?: string | undefined;
        pageSize?: number | undefined;
        pageToken?: string | undefined;
    } & {
        federationId?: string | undefined;
        pageSize?: number | undefined;
        pageToken?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListFederationOperationsRequest>, never>>(object: I): ListFederationOperationsRequest;
};
export declare const ListFederationOperationsResponse: {
    encode(message: ListFederationOperationsResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ListFederationOperationsResponse;
    fromJSON(object: any): ListFederationOperationsResponse;
    toJSON(message: ListFederationOperationsResponse): unknown;
    fromPartial<I extends {
        operations?: {
            id?: string | undefined;
            description?: string | undefined;
            createdAt?: Date | undefined;
            createdBy?: string | undefined;
            modifiedAt?: Date | undefined;
            done?: boolean | undefined;
            metadata?: {
                typeUrl?: string | undefined;
                value?: Buffer | undefined;
            } | undefined;
            error?: {
                code?: number | undefined;
                message?: string | undefined;
                details?: {
                    typeUrl?: string | undefined;
                    value?: Buffer | undefined;
                }[] | undefined;
            } | undefined;
            response?: {
                typeUrl?: string | undefined;
                value?: Buffer | undefined;
            } | undefined;
        }[] | undefined;
        nextPageToken?: string | undefined;
    } & {
        operations?: ({
            id?: string | undefined;
            description?: string | undefined;
            createdAt?: Date | undefined;
            createdBy?: string | undefined;
            modifiedAt?: Date | undefined;
            done?: boolean | undefined;
            metadata?: {
                typeUrl?: string | undefined;
                value?: Buffer | undefined;
            } | undefined;
            error?: {
                code?: number | undefined;
                message?: string | undefined;
                details?: {
                    typeUrl?: string | undefined;
                    value?: Buffer | undefined;
                }[] | undefined;
            } | undefined;
            response?: {
                typeUrl?: string | undefined;
                value?: Buffer | undefined;
            } | undefined;
        }[] & ({
            id?: string | undefined;
            description?: string | undefined;
            createdAt?: Date | undefined;
            createdBy?: string | undefined;
            modifiedAt?: Date | undefined;
            done?: boolean | undefined;
            metadata?: {
                typeUrl?: string | undefined;
                value?: Buffer | undefined;
            } | undefined;
            error?: {
                code?: number | undefined;
                message?: string | undefined;
                details?: {
                    typeUrl?: string | undefined;
                    value?: Buffer | undefined;
                }[] | undefined;
            } | undefined;
            response?: {
                typeUrl?: string | undefined;
                value?: Buffer | undefined;
            } | undefined;
        } & {
            id?: string | undefined;
            description?: string | undefined;
            createdAt?: Date | undefined;
            createdBy?: string | undefined;
            modifiedAt?: Date | undefined;
            done?: boolean | undefined;
            metadata?: ({
                typeUrl?: string | undefined;
                value?: Buffer | undefined;
            } & {
                typeUrl?: string | undefined;
                value?: Buffer | undefined;
            } & Record<Exclude<keyof I["operations"][number]["metadata"], keyof import("../../../../../google/protobuf/any").Any>, never>) | undefined;
            error?: ({
                code?: number | undefined;
                message?: string | undefined;
                details?: {
                    typeUrl?: string | undefined;
                    value?: Buffer | undefined;
                }[] | undefined;
            } & {
                code?: number | undefined;
                message?: string | undefined;
                details?: ({
                    typeUrl?: string | undefined;
                    value?: Buffer | undefined;
                }[] & ({
                    typeUrl?: string | undefined;
                    value?: Buffer | undefined;
                } & {
                    typeUrl?: string | undefined;
                    value?: Buffer | undefined;
                } & Record<Exclude<keyof I["operations"][number]["error"]["details"][number], keyof import("../../../../../google/protobuf/any").Any>, never>)[] & Record<Exclude<keyof I["operations"][number]["error"]["details"], keyof {
                    typeUrl?: string | undefined;
                    value?: Buffer | undefined;
                }[]>, never>) | undefined;
            } & Record<Exclude<keyof I["operations"][number]["error"], keyof import("../../../../../google/rpc/status").Status>, never>) | undefined;
            response?: ({
                typeUrl?: string | undefined;
                value?: Buffer | undefined;
            } & {
                typeUrl?: string | undefined;
                value?: Buffer | undefined;
            } & Record<Exclude<keyof I["operations"][number]["response"], keyof import("../../../../../google/protobuf/any").Any>, never>) | undefined;
        } & Record<Exclude<keyof I["operations"][number], keyof Operation>, never>)[] & Record<Exclude<keyof I["operations"], keyof {
            id?: string | undefined;
            description?: string | undefined;
            createdAt?: Date | undefined;
            createdBy?: string | undefined;
            modifiedAt?: Date | undefined;
            done?: boolean | undefined;
            metadata?: {
                typeUrl?: string | undefined;
                value?: Buffer | undefined;
            } | undefined;
            error?: {
                code?: number | undefined;
                message?: string | undefined;
                details?: {
                    typeUrl?: string | undefined;
                    value?: Buffer | undefined;
                }[] | undefined;
            } | undefined;
            response?: {
                typeUrl?: string | undefined;
                value?: Buffer | undefined;
            } | undefined;
        }[]>, never>) | undefined;
        nextPageToken?: string | undefined;
    } & Record<Exclude<keyof I, keyof ListFederationOperationsResponse>, never>>(object: I): ListFederationOperationsResponse;
};
/** A set of methods for managing federations. */
export declare const FederationServiceService: {
    /**
     * Returns the specified federation.
     *
     * To get the list of available federations, make a [List] request.
     */
    readonly get: {
        readonly path: "/yandex.cloud.organizationmanager.v1.saml.FederationService/Get";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: GetFederationRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => GetFederationRequest;
        readonly responseSerialize: (value: Federation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Federation;
    };
    /** Retrieves the list of federations in the specified organization. */
    readonly list: {
        readonly path: "/yandex.cloud.organizationmanager.v1.saml.FederationService/List";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: ListFederationsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => ListFederationsRequest;
        readonly responseSerialize: (value: ListFederationsResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => ListFederationsResponse;
    };
    /** Creates a federation in the specified organization. */
    readonly create: {
        readonly path: "/yandex.cloud.organizationmanager.v1.saml.FederationService/Create";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: CreateFederationRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => CreateFederationRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Updates the specified federation. */
    readonly update: {
        readonly path: "/yandex.cloud.organizationmanager.v1.saml.FederationService/Update";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: UpdateFederationRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => UpdateFederationRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Deletes the specified federation. */
    readonly delete: {
        readonly path: "/yandex.cloud.organizationmanager.v1.saml.FederationService/Delete";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: DeleteFederationRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => DeleteFederationRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Adds users to the specified federation. */
    readonly addUserAccounts: {
        readonly path: "/yandex.cloud.organizationmanager.v1.saml.FederationService/AddUserAccounts";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: AddFederatedUserAccountsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => AddFederatedUserAccountsRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Deletes users from the specified federation. */
    readonly deleteUserAccounts: {
        readonly path: "/yandex.cloud.organizationmanager.v1.saml.FederationService/DeleteUserAccounts";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: DeleteFederatedUserAccountsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => DeleteFederatedUserAccountsRequest;
        readonly responseSerialize: (value: Operation) => Buffer;
        readonly responseDeserialize: (value: Buffer) => Operation;
    };
    /** Lists users for the specified federation. */
    readonly listUserAccounts: {
        readonly path: "/yandex.cloud.organizationmanager.v1.saml.FederationService/ListUserAccounts";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: ListFederatedUserAccountsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => ListFederatedUserAccountsRequest;
        readonly responseSerialize: (value: ListFederatedUserAccountsResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => ListFederatedUserAccountsResponse;
    };
    /** Lists operations for the specified federation. */
    readonly listOperations: {
        readonly path: "/yandex.cloud.organizationmanager.v1.saml.FederationService/ListOperations";
        readonly requestStream: false;
        readonly responseStream: false;
        readonly requestSerialize: (value: ListFederationOperationsRequest) => Buffer;
        readonly requestDeserialize: (value: Buffer) => ListFederationOperationsRequest;
        readonly responseSerialize: (value: ListFederationOperationsResponse) => Buffer;
        readonly responseDeserialize: (value: Buffer) => ListFederationOperationsResponse;
    };
};
export interface FederationServiceServer extends UntypedServiceImplementation {
    /**
     * Returns the specified federation.
     *
     * To get the list of available federations, make a [List] request.
     */
    get: handleUnaryCall<GetFederationRequest, Federation>;
    /** Retrieves the list of federations in the specified organization. */
    list: handleUnaryCall<ListFederationsRequest, ListFederationsResponse>;
    /** Creates a federation in the specified organization. */
    create: handleUnaryCall<CreateFederationRequest, Operation>;
    /** Updates the specified federation. */
    update: handleUnaryCall<UpdateFederationRequest, Operation>;
    /** Deletes the specified federation. */
    delete: handleUnaryCall<DeleteFederationRequest, Operation>;
    /** Adds users to the specified federation. */
    addUserAccounts: handleUnaryCall<AddFederatedUserAccountsRequest, Operation>;
    /** Deletes users from the specified federation. */
    deleteUserAccounts: handleUnaryCall<DeleteFederatedUserAccountsRequest, Operation>;
    /** Lists users for the specified federation. */
    listUserAccounts: handleUnaryCall<ListFederatedUserAccountsRequest, ListFederatedUserAccountsResponse>;
    /** Lists operations for the specified federation. */
    listOperations: handleUnaryCall<ListFederationOperationsRequest, ListFederationOperationsResponse>;
}
export interface FederationServiceClient extends Client {
    /**
     * Returns the specified federation.
     *
     * To get the list of available federations, make a [List] request.
     */
    get(request: GetFederationRequest, callback: (error: ServiceError | null, response: Federation) => void): ClientUnaryCall;
    get(request: GetFederationRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Federation) => void): ClientUnaryCall;
    get(request: GetFederationRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Federation) => void): ClientUnaryCall;
    /** Retrieves the list of federations in the specified organization. */
    list(request: ListFederationsRequest, callback: (error: ServiceError | null, response: ListFederationsResponse) => void): ClientUnaryCall;
    list(request: ListFederationsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: ListFederationsResponse) => void): ClientUnaryCall;
    list(request: ListFederationsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: ListFederationsResponse) => void): ClientUnaryCall;
    /** Creates a federation in the specified organization. */
    create(request: CreateFederationRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    create(request: CreateFederationRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    create(request: CreateFederationRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Updates the specified federation. */
    update(request: UpdateFederationRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    update(request: UpdateFederationRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    update(request: UpdateFederationRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Deletes the specified federation. */
    delete(request: DeleteFederationRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    delete(request: DeleteFederationRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    delete(request: DeleteFederationRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Adds users to the specified federation. */
    addUserAccounts(request: AddFederatedUserAccountsRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    addUserAccounts(request: AddFederatedUserAccountsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    addUserAccounts(request: AddFederatedUserAccountsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Deletes users from the specified federation. */
    deleteUserAccounts(request: DeleteFederatedUserAccountsRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    deleteUserAccounts(request: DeleteFederatedUserAccountsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    deleteUserAccounts(request: DeleteFederatedUserAccountsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
    /** Lists users for the specified federation. */
    listUserAccounts(request: ListFederatedUserAccountsRequest, callback: (error: ServiceError | null, response: ListFederatedUserAccountsResponse) => void): ClientUnaryCall;
    listUserAccounts(request: ListFederatedUserAccountsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: ListFederatedUserAccountsResponse) => void): ClientUnaryCall;
    listUserAccounts(request: ListFederatedUserAccountsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: ListFederatedUserAccountsResponse) => void): ClientUnaryCall;
    /** Lists operations for the specified federation. */
    listOperations(request: ListFederationOperationsRequest, callback: (error: ServiceError | null, response: ListFederationOperationsResponse) => void): ClientUnaryCall;
    listOperations(request: ListFederationOperationsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: ListFederationOperationsResponse) => void): ClientUnaryCall;
    listOperations(request: ListFederationOperationsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: ListFederationOperationsResponse) => void): ClientUnaryCall;
}
export declare const FederationServiceClient: {
    new (address: string, credentials: ChannelCredentials, options?: Partial<ChannelOptions>): FederationServiceClient;
    service: typeof FederationServiceService;
};
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
    [K in keyof T]?: DeepPartial<T[K]>;
} : Partial<T>;
type KeysOfUnion<T> = T extends T ? keyof T : never;
export type Exact<P, I extends P> = P extends Builtin ? P : P & {
    [K in keyof P]: Exact<P[K], I[K]>;
} & Record<Exclude<keyof I, KeysOfUnion<P>>, never>;
export {};
