import { State } from '../shared/State';
import { type AmConfigEntityInterface, type NoIdObjectSkeletonInterface, type PagedResult, type Readable, type Writable } from './ApiTypes';
export type OAuth2ClientSkeleton = AmConfigEntityInterface & {
    overrideOAuth2ClientConfig?: {
        [k: string]: string | number | boolean | string[] | object | undefined;
    };
    advancedOAuth2ClientConfig?: {
        descriptions: {
            inherited: boolean;
            value: string[];
        };
        grantTypes?: Readable<string[]> | Writable<string[]>;
        isConsentImplied?: Readable<boolean> | Writable<boolean>;
        tokenEndpointAuthMethod?: Readable<string> | Writable<string>;
        responseTypes?: Readable<string[]> | Writable<string[]>;
        [k: string]: string | number | boolean | string[] | object | undefined;
    };
    signEncOAuth2ClientConfig?: {
        jwkSet?: Readable<string> | Writable<string>;
        publicKeyLocation?: Readable<string> | Writable<string>;
        [k: string]: string | number | boolean | string[] | object | undefined;
    };
    coreOpenIDClientConfig?: {
        [k: string]: string | number | boolean | string[] | object | undefined;
    };
    coreOAuth2ClientConfig?: {
        userpassword?: string;
        clientName?: Readable<string[]> | Writable<string[]>;
        clientType?: Readable<string> | Writable<string>;
        accessTokenLifetime?: Readable<number> | Writable<number>;
        scopes?: Readable<string[]> | Writable<string[]>;
        defaultScopes?: {
            value: string[];
            [k: string]: string | number | boolean | string[] | object | undefined;
        };
        [k: string]: string | number | boolean | string[] | object | undefined;
    };
    coreUmaClientConfig?: {
        [k: string]: string | number | boolean | string[] | object | undefined;
    };
};
/**
 * Get OAuth2 Clients
 * @returns {Promise<PagedResult>} a promise that resolves to a PagedResults object containing an array of oauth2client objects
 */
export declare function getOAuth2Clients({ state, }: {
    state: State;
}): Promise<PagedResult<OAuth2ClientSkeleton>>;
/**
 * Get OAuth2 Client
 * @param {string} id client id
 * @returns {Promise<OAuth2ClientSkeleton>} a promise that resolves to an oauth2 client object
 */
export declare function getOAuth2Client({ id, state, }: {
    id: string;
    state: State;
}): Promise<OAuth2ClientSkeleton>;
/**
 * Put OAuth2 Client
 * @param {string} id client id
 * @param {OAuth2ClientSkeleton} clientData oauth2client object
 * @returns {Promise<OAuth2ClientSkeleton>} a promise that resolves to an oauth2 client object
 */
export declare function putOAuth2Client({ id, clientData, state, }: {
    id: string;
    clientData: OAuth2ClientSkeleton | NoIdObjectSkeletonInterface;
    state: State;
}): Promise<OAuth2ClientSkeleton>;
/**
 * Delete OAuth2 Client
 * @param {string} id OAuth2 Client
 * @returns {Promise<OAuth2ClientSkeleton>} a promise that resolves to an oauth2client object
 */
export declare function deleteOAuth2Client({ id, state, }: {
    id: string;
    state: State;
}): Promise<OAuth2ClientSkeleton>;
//# sourceMappingURL=OAuth2ClientApi.d.ts.map