export type OAuthGrantType = 'authorization_code' | 'refresh_token' | 'password';
/**
 * @internal https://gitlab.com/showpad-code/showpad/centralstation/-/blob/master/src/Showpad/CoreBundle/CentralDbEntity/OAuth2Scope.php
 */
export type OAuthScope = 'refresh_token' | 'read_user_management' | 'write_user_management' | 'read_contentprofile_management' | 'write_contentprofile_management' | 'read_division_management' | 'write_division_management' | 'offline_access' | 'appsdb_online_integrations' | 'publish_experience_app' | 'oauth2_session_cookie' | 'oauth2_exchange_session' | 'oauth2_token_exchange';
export type ApiConfig = {
    accessToken: string;
    url: string;
    scope?: OAuthScope[];
};
/**
 * @internal Error returned by the ShowpadLib.getShowpadApi() &
 *           ShowpadLib.refreshShowpadApi() methods
 */
export type ApiError = {
    error: string;
};
/**
 * @internal Credentials from localstorage on WEB with key:
 *           shared-authentication-showpad-tokens
 */
export type SharedApiConfig = {
    accessToken: string;
    accessTokenExpiresAt: string;
};
export interface V3Token {
    access_token: string;
    expires_in: number;
    token_type: string;
    scope: string;
    refresh_token: string;
    instance_url: string;
}
export type V3Error = {
    error: string;
    error_description: string;
};
export type ShowpadApi = 'v3' | 'coach';
/**
 * @internal Used to extend ApiConfig or V3Token with caching properties
 */
export interface AuthCache {
    expires_in: number;
    request_date: number;
}
export type AppsDbHttpError = {
    status: number;
    name: string;
    message: string;
};
export interface ApiItems<T> {
    count: number;
    items: T[];
}
