export type AppSecretType = "string" | "number" | "boolean" | "json"; export type AppSecretDefinition = { key: string; type: AppSecretType; hidden: boolean; defaultValue?: any; }; export type AppSecret = { key: string; value: TValue; type: AppSecretType; hidden: boolean; timestamp: number; }; export type AppSecretInput = { key: string; value: TValue; }; export type AppSecretsPageMetadata = { tags?: { key: string; value: string; }[]; }; export interface ISecretsProvider { getSecrets(pageName: string): Promise[]>; setSecret(pageName: string, secret: AppSecret): Promise; defineSecret(pageName: string, definition: AppSecretDefinition): Promise; pageInitialize(pageName: string, metadata: AppSecretsPageMetadata): Promise; pageEnsure(pageName: string, metadata: AppSecretsPageMetadata): Promise; pageExists(pageName: string): Promise; }