dotfiles/config/ags/quickactions/@girs/astalauth-0.1.d.ts
2025-04-25 06:53:17 +02:00

218 lines
9.1 KiB
TypeScript

/// <reference path="./gio-2.0.d.ts" />
/// <reference path="./gobject-2.0.d.ts" />
/// <reference path="./glib-2.0.d.ts" />
/// <reference path="./gmodule-2.0.d.ts" />
/**
* Type Definitions for Gjs (https://gjs.guide/)
*
* These type definitions are automatically generated, do not edit them by hand.
* If you found a bug fix it in `ts-for-gir` or create a bug report on https://github.com/gjsify/ts-for-gir
*
* The based EJS template file is used for the generated .d.ts file of each GIR module like Gtk-4.0, GObject-2.0, ...
*/
declare module 'gi://AstalAuth?version=0.1' {
// Module dependencies
import type Gio from 'gi://Gio?version=2.0';
import type GObject from 'gi://GObject?version=2.0';
import type GLib from 'gi://GLib?version=2.0';
import type GModule from 'gi://GModule?version=2.0';
export namespace AstalAuth {
/**
* AstalAuth-0.1
*/
const MAJOR_VERSION: number;
const MICRO_VERSION: number;
const MINOR_VERSION: number;
const VERSION: string;
namespace Pam {
// Signal callback interfaces
interface AuthError {
(msg: string): void;
}
interface AuthInfo {
(msg: string): void;
}
interface AuthPromptHidden {
(msg: string): void;
}
interface AuthPromptVisible {
(msg: string): void;
}
interface Fail {
(msg: string): void;
}
interface Success {
(): void;
}
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
service: string;
username: string;
}
}
/**
* For simple authentication using only a password, using the [func`AstalAuth`.Pam.authenticate]
* method is recommended. Look at the simple examples for how to use it.
*
* There is also a way to get access to the pam conversation, to allow for a more complex
* authentication process, like using multiple factor authentication. Generally it can be used like
* this:
*
* 1. create the Pam object.
* 2. set username and service if so required. It has sane defaults, so in most cases you can skip
* this.
* 3. connect to the signals.
* After an `auth-*` signal is emitted, it has to be responded with exactly one
* [method`AstalAuth`.Pam.supply_secret] call. The secret is a string containing the user input. For
* [auth-info][signal`AstalAuth`.Pam::auth-info:] and [auth-error][signal`AstalAuth`.Pam::auth-error:]
* it should be `NULL`. Not connecting those signals, is equivalent to calling
* [method`AstalAuth`.Pam.supply_secret] with `NULL` immediately after the signal is emitted.
* 4. start authentication process using [method`AstalAuth`.Pam.start_authenticate].
* 5. it is possible to reuse the same Pam object for multiple sequential authentication attempts.
* Just call [method`AstalAuth`.Pam.start_authenticate] again after the `success` or `fail` signal
* was emitted.
*/
class Pam extends GObject.Object {
static $gtype: GObject.GType<Pam>;
// Properties
/**
* The pam service used for authentication.
* Changing the value of this property has no affect on an already started authentication
* process.
*
* Defaults to the astal-auth pam service.
*/
get service(): string;
set service(val: string);
/**
* The username used for authentication.
* Changing the value of this property has no affect on an already started authentication
* process.
*
* Defaults to the user that owns this process.
*/
get username(): string;
set username(val: string);
// Constructors
constructor(properties?: Partial<Pam.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Signals
connect(id: string, callback: (...args: any[]) => any): number;
connect_after(id: string, callback: (...args: any[]) => any): number;
emit(id: string, ...args: any[]): void;
connect(signal: 'auth-error', callback: (_source: this, msg: string) => void): number;
connect_after(signal: 'auth-error', callback: (_source: this, msg: string) => void): number;
emit(signal: 'auth-error', msg: string): void;
connect(signal: 'auth-info', callback: (_source: this, msg: string) => void): number;
connect_after(signal: 'auth-info', callback: (_source: this, msg: string) => void): number;
emit(signal: 'auth-info', msg: string): void;
connect(signal: 'auth-prompt-hidden', callback: (_source: this, msg: string) => void): number;
connect_after(signal: 'auth-prompt-hidden', callback: (_source: this, msg: string) => void): number;
emit(signal: 'auth-prompt-hidden', msg: string): void;
connect(signal: 'auth-prompt-visible', callback: (_source: this, msg: string) => void): number;
connect_after(signal: 'auth-prompt-visible', callback: (_source: this, msg: string) => void): number;
emit(signal: 'auth-prompt-visible', msg: string): void;
connect(signal: 'fail', callback: (_source: this, msg: string) => void): number;
connect_after(signal: 'fail', callback: (_source: this, msg: string) => void): number;
emit(signal: 'fail', msg: string): void;
connect(signal: 'success', callback: (_source: this) => void): number;
connect_after(signal: 'success', callback: (_source: this) => void): number;
emit(signal: 'success'): void;
// Static methods
/**
* Requests authentication of the provided password using the PAM (Pluggable Authentication Modules)
* system.
* @param password the password to be authenticated
* @param result_callback a GAsyncReadyCallback to call when the request is satisfied
*/
static authenticate(password: string, result_callback?: Gio.AsyncReadyCallback<Pam> | null): boolean;
static authenticate_finish(res: Gio.AsyncResult): number;
// Methods
/**
* Fetches the service from AsalAuthPam object.
* @returns the service of the AsalAuthPam object. This string is owned by the object and must not be modified or freed.
*/
get_service(): string;
/**
* Fetches the username from AsalAuthPam object.
* @returns the username of the AsalAuthPam object. This string is owned by the object and must not be modified or freed.
*/
get_username(): string;
/**
* Sets the service to be used for authentication. This must be set to
* before calling start_authenticate.
* Changing it afterwards has no effect on the authentication process.
*
* Defaults to `astal-auth`.
* @param service the pam service used for authentication
*/
set_service(service: string): void;
/**
* Sets the username to be used for authentication. This must be set to
* before calling start_authenticate.
* Changing it afterwards has no effect on the authentication process.
*
* Defaults to the owner of the process.
* @param username the new username
*/
set_username(username: string): void;
/**
* starts a new authentication process using the PAM (Pluggable Authentication Modules) system.
* Note that this will cancel an already running authentication process
* associated with this AstalAuthPam object.
*/
start_authenticate(): boolean;
/**
* provides pam with a secret. This method must be called exactly once after a
* auth-* signal is emitted.
* @param secret the secret to be provided to pam. Can be NULL.
*/
supply_secret(secret?: string | null): void;
}
type PamClass = typeof Pam;
/**
* Name of the imported GIR library
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L188
*/
const __name__: string;
/**
* Version of the imported GIR library
* `see` https://gitlab.gnome.org/GNOME/gjs/-/blob/master/gi/ns.cpp#L189
*/
const __version__: string;
}
export default AstalAuth;
}
declare module 'gi://AstalAuth' {
import AstalAuth01 from 'gi://AstalAuth?version=0.1';
export default AstalAuth01;
}
// END