import { Provider } from './provider'; import { Organization, ThemeData } from './organization'; import { AxiosResponse } from 'axios'; import { Config } from './config'; import Request from './request'; import type { Cert } from './cert'; import { CasdoorResponse } from './util'; interface ProviderItem { owner: string; name: string; canSignUp: boolean; canSignIn: boolean; canUnlink: boolean; prompted: boolean; alertType: string; rule: string; provider?: Provider; } interface SignupItem { name: string; visible: boolean; required: boolean; prompted: boolean; rule: string; } export interface Application { owner: string; name: string; createdTime: string; displayName: string; logo: string; homepageUrl: string; description: string; organization: string; cert?: string; enablePassword?: boolean; enableSignUp?: boolean; enableSigninSession?: boolean; enableCodeSignin?: boolean; enableAutoSignin?: boolean; enableSamlCompress?: boolean; enableWebAuthn?: boolean; enableLinkWithEmail?: boolean; orgChoiceMode?: string; samlReplyUrl?: string; providers?: ProviderItem[]; signupItems?: SignupItem[]; grantTypes?: string[]; organizationObj?: Organization; tags?: string[]; clientId?: string; clientSecret?: string; redirectUris?: string[]; tokenFormat?: string; tokenFields?: string[]; expireInHours?: number; refreshExpireInHours?: number; signupUrl?: string; signinUrl?: string; forgetUrl?: string; affiliationUrl?: string; termsOfUse?: string; signupHtml?: string; signinHtml?: string; themeData?: ThemeData; category?: string; type?: string; scopes?: ScopeItem[]; logoDark?: string; title?: string; favicon?: string; order?: number; defaultGroup?: string; defaultTag?: string; headerHtml?: string; pageHtml?: string; enableGuestSignin?: boolean; disableSignin?: boolean; enableExclusiveSignin?: boolean; maxSessions?: number; enableSamlC14n10?: boolean; enableSamlPostBinding?: boolean; disableSamlAttributes?: boolean; enableSamlAssertionSignature?: boolean; useEmailAsSamlNameId?: boolean; samlSingleLogoutUrl?: string; signinMethods?: SigninMethod[]; signinItems?: SigninItem[]; certPublicKey?: string; samlAttributes?: SamlItem[]; samlHashAlgorithm?: string; samlC14nPrefix?: string; isShared?: boolean; ipRestriction?: string; clientCert?: string; backchannelLogoutUri?: string; forcedRedirectOrigin?: string; tokenSigningMethod?: string; tokenAttributes?: JwtItem[]; tokenGroupFormat?: string; cookieExpireInHours?: number; ipWhitelist?: string; footerHtml?: string; formCss?: string; formCssMobile?: string; formOffset?: number; formSideHtml?: string; formBackgroundUrl?: string; formBackgroundUrlMobile?: string; failedSigninLimit?: number; failedSigninFrozenTime?: number; codeResendTimeout?: number; customScopes?: ScopeDescription[]; domain?: string; otherDomains?: string[]; upstreamHost?: string; sslMode?: string; sslCert?: string; CertObj?: Cert; registrationAccessToken?: string; } export declare class ApplicationSDK { private config; private readonly request; constructor(config: Config, request: Request); getOrganizationApplications(): Promise, any>>; getApplications(): Promise, any>>; getApplication(name: string): Promise, any>>; modifyApplication(method: string, application: Application, columns?: string[]): Promise, any>>; addApplication(application: Application): Promise, any>>; updateApplication(application: Application): Promise, any>>; deleteApplication(application: Application): Promise, any>>; } export interface ScopeItem { name?: string; displayName?: string; description?: string; tools?: string[]; } export interface SigninMethod { name?: string; displayName?: string; rule?: string; } export interface SigninItem { name?: string; visible?: boolean; label?: string; customCss?: string; placeholder?: string; rule?: string; isCustom?: boolean; } export interface SamlItem { name?: string; nameFormat?: string; value?: string; } export interface JwtItem { name?: string; category?: string; value?: string; type?: string; } export interface ScopeDescription { scope?: string; displayName?: string; description?: string; } export {};