2025-04-25 06:53:17 +02:00

10959 lines
522 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/// <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" />
/// <reference path="./gck-2.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://Gcr?version=4' {
// 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';
import type Gck from 'gi://Gck?version=2';
export namespace Gcr {
/**
* Gcr-4
*/
/**
* The status of a built certificate chain. Will be set to
* %GCR_CERTIFICATE_CHAIN_UNKNOWN for certificate chains that have not been
* built.
*/
/**
* The status of a built certificate chain. Will be set to
* %GCR_CERTIFICATE_CHAIN_UNKNOWN for certificate chains that have not been
* built.
*/
export namespace CertificateChainStatus {
export const $gtype: GObject.GType<CertificateChainStatus>;
}
enum CertificateChainStatus {
/**
* The certificate chain's status is unknown.
* When a chain is not yet built it has this status. If a chain is modified after
* being built, it has this status.
*/
UNKNOWN,
/**
* A full chain could not be loaded. The
* chain does not end with a self-signed certificate, a trusted anchor, or a
* pinned certificate.
*/
INCOMPLETE,
/**
* The certificate chain contains a revoked
* or otherwise explicitly distrusted certificate. The entire chain should
* be distrusted.
*/
DISTRUSTED,
/**
* The chain ends with a self-signed
* certificate. No trust anchor was found.
*/
SELFSIGNED,
/**
* The chain represents a pinned certificate. A
* pinned certificate is an exception which trusts a given certificate
* explicitly for a purpose and communication with a certain peer.
*/
PINNED,
/**
* The chain ends with an anchored
* certificate. The anchored certificate is not necessarily self-signed.
*/
ANCHORED,
}
/**
* The format of a certificate request. Currently only PKCS#10 is supported.
*/
/**
* The format of a certificate request. Currently only PKCS#10 is supported.
*/
export namespace CertificateRequestFormat {
export const $gtype: GObject.GType<CertificateRequestFormat>;
}
enum CertificateRequestFormat {
/**
* certificate request is in PKCS#10 format
*/
CERTIFICATE_REQUEST_PKCS10,
}
/**
* Values responding to error codes for parsing and serializing data.
*/
/**
* Values responding to error codes for parsing and serializing data.
*/
export namespace DataError {
export const $gtype: GObject.GType<DataError>;
}
enum DataError {
/**
* Failed to parse or serialize the data
*/
FAILURE,
/**
* The data was unrecognized or unsupported
*/
UNRECOGNIZED,
/**
* The operation was cancelled
*/
CANCELLED,
/**
* The data was encrypted or locked and could not be unlocked.
*/
LOCKED,
}
/**
* The various format identifiers.
*/
/**
* The various format identifiers.
*/
export namespace DataFormat {
export const $gtype: GObject.GType<DataFormat>;
}
enum DataFormat {
/**
* Represents all the formats, when enabling or disabling
*/
ALL,
/**
* Not a valid format
*/
INVALID,
/**
* DER encoded private key
*/
DER_PRIVATE_KEY,
/**
* DER encoded RSA private key
*/
DER_PRIVATE_KEY_RSA,
/**
* DER encoded DSA private key
*/
DER_PRIVATE_KEY_DSA,
/**
* DER encoded EC private key
*/
DER_PRIVATE_KEY_EC,
/**
* DER encoded SubjectPublicKeyInfo
*/
DER_SUBJECT_PUBLIC_KEY,
/**
* DER encoded X.509 certificate
*/
DER_CERTIFICATE_X509,
/**
* DER encoded PKCS#7 container file which can contain certificates
*/
DER_PKCS7,
/**
* DER encoded PKCS#8 file which can contain a key
*/
DER_PKCS8,
/**
* Unencrypted DER encoded PKCS#8 file which can contain a key
*/
DER_PKCS8_PLAIN,
/**
* Encrypted DER encoded PKCS#8 file which can contain a key
*/
DER_PKCS8_ENCRYPTED,
/**
* DER encoded PKCS#10 certificate request file
*/
DER_PKCS10,
/**
* DER encoded SPKAC as generated by HTML5 keygen element
*/
DER_SPKAC,
/**
* OpenSSL style SPKAC data
*/
BASE64_SPKAC,
/**
* DER encoded PKCS#12 file which can contain certificates and/or keys
*/
DER_PKCS12,
/**
* OpenSSH v1 or v2 public key
*/
OPENSSH_PUBLIC,
/**
* OpenPGP key packet(s)
*/
OPENPGP_PACKET,
/**
* OpenPGP public or private key armor encoded data
*/
OPENPGP_ARMOR,
/**
* An OpenSSL style PEM file with unspecified contents
*/
PEM,
/**
* An OpenSSL style PEM file with a private RSA key
*/
PEM_PRIVATE_KEY_RSA,
/**
* An OpenSSL style PEM file with a private DSA key
*/
PEM_PRIVATE_KEY_DSA,
/**
* An OpenSSL style PEM file with an X.509 certificate
*/
PEM_CERTIFICATE_X509,
/**
* An OpenSSL style PEM file containing PKCS#7
*/
PEM_PKCS7,
/**
* Unencrypted OpenSSL style PEM file containing PKCS#8
*/
PEM_PKCS8_PLAIN,
/**
* Encrypted OpenSSL style PEM file containing PKCS#8
*/
PEM_PKCS8_ENCRYPTED,
/**
* An OpenSSL style PEM file containing PKCS#12
*/
PEM_PKCS12,
/**
* An OpenSSL style PEM file with a private key
*/
PEM_PRIVATE_KEY,
/**
* An OpenSSL style PEM file containing PKCS#10
*/
PEM_PKCS10,
/**
* An OpenSSL style PEM file with a private EC key
*/
PEM_PRIVATE_KEY_EC,
/**
* An OpenSSL style PEM file containing a SubjectPublicKeyInfo
*/
PEM_PUBLIC_KEY,
}
/**
* Various replies returned by [method`Prompt`.confirm] and friends.
*/
/**
* Various replies returned by [method`Prompt`.confirm] and friends.
*/
export namespace PromptReply {
export const $gtype: GObject.GType<PromptReply>;
}
enum PromptReply {
/**
* the prompt was cancelled
*/
CANCEL,
/**
* the user replied with 'ok'
*/
CONTINUE,
}
/**
* No error returned by the #GcrSystemPrompt is suitable for display or
* to the user.
*
* If the system prompter can only show one prompt at a time, and there is
* already a prompt being displayed, and the timeout waiting to open the
* prompt expires, then %GCR_SYSTEM_PROMPT_IN_PROGRESS is returned.
*/
/**
* No error returned by the #GcrSystemPrompt is suitable for display or
* to the user.
*
* If the system prompter can only show one prompt at a time, and there is
* already a prompt being displayed, and the timeout waiting to open the
* prompt expires, then %GCR_SYSTEM_PROMPT_IN_PROGRESS is returned.
*/
export namespace SystemPromptError {
export const $gtype: GObject.GType<SystemPromptError>;
}
enum SystemPromptError {
/**
* another prompt is already in progress
*/
SYSTEM_PROMPT_IN_PROGRESS,
}
/**
* The mode for the system prompter. Most system prompters can only show
* one prompt at a time and would use the %GCR_SYSTEM_PROMPTER_SINGLE mode.
*/
/**
* The mode for the system prompter. Most system prompters can only show
* one prompt at a time and would use the %GCR_SYSTEM_PROMPTER_SINGLE mode.
*/
export namespace SystemPrompterMode {
export const $gtype: GObject.GType<SystemPrompterMode>;
}
enum SystemPrompterMode {
/**
* only one prompt shown at a time
*/
SINGLE,
/**
* more than one prompt shown at a time
*/
MULTIPLE,
}
/**
* The major version number of the Gcr library.
*/
const MAJOR_VERSION: number;
/**
* The micro version number of the Gcr library.
*/
const MICRO_VERSION: number;
/**
* The minor version number of the Gcr library.
*/
const MINOR_VERSION: number;
/**
* The purpose used to verify the client certificate in a TLS connection.
*/
const PURPOSE_CLIENT_AUTH: string;
/**
* The purpose used to verify certificate used for the signature on signed code.
*/
const PURPOSE_CODE_SIGNING: string;
/**
* The purpose used to verify certificates that are used in email communication
* such as S/MIME.
*/
const PURPOSE_EMAIL: string;
/**
* The purpose used to verify the server certificate in a TLS connection. This
* is the most common purpose in use.
*/
const PURPOSE_SERVER_AUTH: string;
/**
* The current secret exchange protocol. Key agreement is done using DH with the
* 1536 bit IKE parameter group. Keys are derived using SHA256 with HKDF. The
* transport encryption is done with 128 bit AES.
*/
const SECRET_EXCHANGE_PROTOCOL_1: string;
const UNLOCK_OPTION_ALWAYS: string;
const UNLOCK_OPTION_IDLE: string;
const UNLOCK_OPTION_SESSION: string;
const UNLOCK_OPTION_TIMEOUT: string;
function data_error_get_domain(): GLib.Quark;
/**
* Create a key fingerprint for a certificate, public key or private key.
* Note that this is not a fingerprint of certificate data, which you would
* use gcr_certificate_get_fingerprint() for.
* @param attrs attributes for key or certificate
* @param checksum_type the type of fingerprint to create
* @returns the fingerprint or %NULL if the input was invalid.
*/
function fingerprint_from_attributes(
attrs: Gck.Attributes,
checksum_type: GLib.ChecksumType | null,
): Uint8Array | null;
/**
* Create a key fingerprint for a DER encoded subjectPublicKeyInfo. The
* fingerprint is created so that it will be identical for a key and its
* corresponding certificate.
*
* Note that in the case of certificates this is not a fingerprint of the
* actual certificate data, but rather of the public key contained in a
* certificate.
* @param key_info DER encoded subjectPublicKeyInfo structure
* @param checksum_type the type of fingerprint to create
* @returns the fingerprint or %NULL if the input was invalid.
*/
function fingerprint_from_subject_public_key_info(
key_info: Uint8Array | string,
checksum_type: GLib.ChecksumType | null,
): Uint8Array | null;
/**
* Create a set of importers which can import this parsed item.
*
* The parsed item is represented by the state of the [class`Gcr`.Parser] at the
* time of calling this method.
* @param parsed a parser with a parsed item to import
* @returns a list of importers which can import the parsed item, which should be freed with g_object_unref(), or %NULL if no types of importers can be created
*/
function importer_create_for_parsed(parsed: Parsed): Importer[];
/**
* Queues an additional item to be imported in all compattible importers
* in the set. The parsed item is represented by the state of the #GcrParser
* at the time of calling this method.
*
* If the parsed item is incompatible with an importer, then that the item
* will not be queued on that importer.
* @param importers a set of importers
* @param parsed a parsed item
* @returns a new set of importers that queued the item.
*/
function importer_queue_and_filter_for_parsed(importers: Importer[], parsed: Parsed): Importer[];
/**
* Register an importer to handle parsed items that match the given attributes.
* @param importer_type the GType of the importer being registered
* @param attrs the attributes that this importer is compatible with
*/
function importer_register(importer_type: GObject.GType, attrs: Gck.Attributes): void;
/**
* Register built-in PKCS#11 and GnuPG importers.
*/
function importer_register_well_known(): void;
/**
* Disconnect the mock prompter
*/
function mock_prompter_disconnect(): void;
/**
* Queue an expected response on the mock prompter.
*
* Expects any prompt, and closes the prompt when it gets it.
*/
function mock_prompter_expect_close(): void;
/**
* Queue an expected response on the mock prompter.
*
* Expects a confirmation prompt, and then cancels that prompt.
*/
function mock_prompter_expect_confirm_cancel(): void;
/**
* Queue an expected response on the mock prompter.
*
* Expects a password prompt, and then cancels that prompt.
*/
function mock_prompter_expect_password_cancel(): void;
/**
* Get the delay in milliseconds before the mock prompter completes
* an expected prompt.
* @returns the delay
*/
function mock_prompter_get_delay_msec(): number;
/**
* Check if the mock prompter is expecting a response. This will be %TRUE
* when one of the <literal>gcr_mock_prompter_expect_xxx<!-- -->()</literal>
* functions have been used to queue an expected prompt, but that prompt
* response has not be 'used' yet.
* @returns whether expecting a prompt
*/
function mock_prompter_is_expecting(): boolean;
/**
* Check if the mock prompter is showing any prompts.
* @returns whether prompting
*/
function mock_prompter_is_prompting(): boolean;
/**
* Set the delay in milliseconds before the mock prompter completes
* an expected prompt.
* @param delay_msec prompt response delay in milliseconds
*/
function mock_prompter_set_delay_msec(delay_msec: number): void;
/**
* Start the mock prompter. This is often used from the
* <literal>setup<!-- -->()</literal> function of tests.
*
* Starts the mock prompter in an additional thread. Use the returned DBus bus
* name with gcr_system_prompt_open_for_prompter() to connect to this prompter.
* @returns the bus name that the mock prompter is listening on
*/
function mock_prompter_start(): string;
/**
* Stop the mock prompter. This is often used from the
* <literal>teardown<!-- -->()</literal> function of tests.
*/
function mock_prompter_stop(): void;
/**
* Unreferences a parsed item which was referenced with gcr_parsed_ref()
* @param parsed a parsed item
*/
function parsed_unref(parsed?: any | null): void;
/**
* Add a #GckModule to the list of PKCS#11 modules that are used by the
* GCR library.
*
* It is not normally necessary to call this function. The available
* PKCS#11 modules installed on the system are automatically loaded
* by the GCR library.
* @param module a #GckModule
*/
function pkcs11_add_module(module: Gck.Module): void;
/**
* Initialize a PKCS#11 module and add it to the modules that are
* used by the GCR library. Note that is an error to initialize the same
* PKCS#11 module twice.
*
* It is not normally necessary to call this function. The available
* PKCS#11 modules installed on the system are automatically loaded
* by the GCR library.
* @param module_path the full file path of the PKCS#11 module
* @param unused unused
* @returns whether the module was sucessfully added.
*/
function pkcs11_add_module_from_file(module_path: string, unused?: any | null): boolean;
/**
* List all the PKCS#11 modules that are used by the GCR library.
* Each module is a [class`Gck`.Module] object.
*
* An empty list of modules will be returned if [func`pkcs1`1_set_modules],
* or [func`pkcs1`1_initialize] has not yet run.
* @returns a newly allocated list of #GckModule objects
*/
function pkcs11_get_modules(): Gck.Module[];
/**
* List all the PKCS#11 slots that are used by the GCR library for lookup
* of trust assertions. Each slot is a [class`Gck`.Slot] object.
*
* This will return an empty list if the [func`pkcs1`1_initialize] function has
* not yet been called.
* @returns a list of #GckSlot objects to use for lookup of trust, or the empty list if not initialized or no appropriate trust stores could be found.
*/
function pkcs11_get_trust_lookup_slots(): Gck.Slot[];
/**
* Get the PKCS#11 URIs that are used to identify which slots to use for
* lookup trust assertions.
* @returns the uri which identifies trust storage slot
*/
function pkcs11_get_trust_lookup_uris(): string[] | null;
/**
* Selects an appropriate PKCS#11 slot to store trust assertions. The slot
* to use is normally configured automatically by the system.
*
* This will only return a valid result after the [func`pkcs1`1_initialize]
* method has been called.
*
* When done with the #GckSlot, use g_object_unref() to release it.
* @returns the #GckSlot to use for trust assertions, or null if not initialized or no appropriate trust store could be found.
*/
function pkcs11_get_trust_store_slot(): Gck.Slot | null;
/**
* Get the PKCS#11 URI that is used to identify which slot to use for
* storing trust storage.
* @returns the uri which identifies trust storage slot
*/
function pkcs11_get_trust_store_uri(): string | null;
/**
* Asynchronously initialize the registered PKCS#11 modules.
* @param cancellable optional cancellable used to cancel the operation
* @returns whether the operation was successful or not.
*/
function pkcs11_initialize(cancellable?: Gio.Cancellable | null): boolean;
/**
* Asynchronously initialize the registered PKCS#11 modules.
* @param cancellable optional cancellable used to cancel the operation
*/
function pkcs11_initialize_async(cancellable?: Gio.Cancellable | null): Promise<boolean>;
/**
* Asynchronously initialize the registered PKCS#11 modules.
* @param cancellable optional cancellable used to cancel the operation
* @param callback callback which will be called when the operation completes
*/
function pkcs11_initialize_async(
cancellable: Gio.Cancellable | null,
callback: Gio.AsyncReadyCallback<Gio.Cancellable | null> | null,
): void;
/**
* Asynchronously initialize the registered PKCS#11 modules.
* @param cancellable optional cancellable used to cancel the operation
* @param callback callback which will be called when the operation completes
*/
function pkcs11_initialize_async(
cancellable?: Gio.Cancellable | null,
callback?: Gio.AsyncReadyCallback<Gio.Cancellable | null> | null,
): Promise<boolean> | void;
/**
* Complete the asynchronous operation to initialize the registered PKCS#11
* modules.
* @param result the asynchronous result
* @returns whether the operation was successful or not.
*/
function pkcs11_initialize_finish(result: Gio.AsyncResult): boolean;
/**
* Set the list of PKCS#11 modules that are used by the GCR library.
* Each module in the list is a [class`Gck`.Module] object.
*
* It is not normally necessary to call this function. The available
* PKCS#11 modules installed on the system are automatically loaded
* by the GCR library.
* @param modules a list of PKCS#11 modules
*/
function pkcs11_set_modules(modules: Gck.Module[]): void;
/**
* Set the PKCS#11 URIs that are used to identify which slots to use for
* lookup of trust assertions.
*
* It is not normally necessary to call this function. The relevant
* PKCS#11 slots are automatically configured by the GCR library.
* @param pkcs11_uris the uris which identifies trust lookup slots
*/
function pkcs11_set_trust_lookup_uris(pkcs11_uris?: string | null): void;
/**
* Set the PKCS#11 URI that is used to identify which slot to use for
* storing trust assertions.
*
* It is not normally necessary to call this function. The relevant
* PKCS#11 slot is automatically configured by the GCR library.
* @param pkcs11_uri the uri which identifies trust storage slot
*/
function pkcs11_set_trust_store_uri(pkcs11_uri?: string | null): void;
/**
* Add a pinned `certificate` for connections to `peer` for `purpose`. A pinned
* certificate overrides all other certificate verification and should be
* used with care.
*
* If the same pinned certificate already exists, then this operation
* does not add another, and succeeds without error.
*
* This call may block, see [func`Gcr`.trust_add_pinned_certificate_async] for
* the non-blocking version.
* @param certificate a #GcrCertificate
* @param purpose the purpose string
* @param peer the peer for this pinned certificate
* @param cancellable a #GCancellable
* @returns %TRUE if the pinned certificate is recorded successfully
*/
function trust_add_pinned_certificate(
certificate: Certificate,
purpose: string,
peer: string,
cancellable?: Gio.Cancellable | null,
): boolean;
/**
* Add a pinned certificate for communication with `peer` for `purpose`. A pinned
* certificate overrides all other certificate verification and should be used
* with care.
*
* If the same pinned certificate already exists, then this operation
* does not add another, and succeeds without error.
*
* When the operation is finished, callback will be called. You can then call
* [func`Gcr`.trust_add_pinned_certificate_finish] to get the result of the
* operation.
* @param certificate a #GcrCertificate
* @param purpose the purpose string
* @param peer the peer for this pinned certificate
* @param cancellable a #GCancellable
*/
function trust_add_pinned_certificate_async(
certificate: Certificate,
purpose: string,
peer: string,
cancellable?: Gio.Cancellable | null,
): Promise<boolean>;
/**
* Add a pinned certificate for communication with `peer` for `purpose`. A pinned
* certificate overrides all other certificate verification and should be used
* with care.
*
* If the same pinned certificate already exists, then this operation
* does not add another, and succeeds without error.
*
* When the operation is finished, callback will be called. You can then call
* [func`Gcr`.trust_add_pinned_certificate_finish] to get the result of the
* operation.
* @param certificate a #GcrCertificate
* @param purpose the purpose string
* @param peer the peer for this pinned certificate
* @param cancellable a #GCancellable
* @param callback a #GAsyncReadyCallback to call when the operation completes
*/
function trust_add_pinned_certificate_async(
certificate: Certificate,
purpose: string,
peer: string,
cancellable: Gio.Cancellable | null,
callback: Gio.AsyncReadyCallback<Certificate> | null,
): void;
/**
* Add a pinned certificate for communication with `peer` for `purpose`. A pinned
* certificate overrides all other certificate verification and should be used
* with care.
*
* If the same pinned certificate already exists, then this operation
* does not add another, and succeeds without error.
*
* When the operation is finished, callback will be called. You can then call
* [func`Gcr`.trust_add_pinned_certificate_finish] to get the result of the
* operation.
* @param certificate a #GcrCertificate
* @param purpose the purpose string
* @param peer the peer for this pinned certificate
* @param cancellable a #GCancellable
* @param callback a #GAsyncReadyCallback to call when the operation completes
*/
function trust_add_pinned_certificate_async(
certificate: Certificate,
purpose: string,
peer: string,
cancellable?: Gio.Cancellable | null,
callback?: Gio.AsyncReadyCallback<Certificate> | null,
): Promise<boolean> | void;
/**
* Finishes an asynchronous operation started by
* [func`Gcr`.trust_add_pinned_certificate_async].
* @param result the #GAsyncResult passed to the callback
* @returns %TRUE if the pinned certificate is recorded successfully
*/
function trust_add_pinned_certificate_finish(result: Gio.AsyncResult): boolean;
/**
* Check if the `certificate` is a trust anchor for the given `purpose`. A trust
* anchor is used to verify the signatures on other certificates when verifying
* a certificate chain. Also known as a trusted certificate authority.
*
* This call may block, see [func`Gcr`.trust_is_certificate_anchored_async] for
* the non-blocking version.
*
* In the case of an error, %FALSE is also returned. Check `error` to detect
* if an error occurred.
* @param certificate a #GcrCertificate to check
* @param purpose the purpose string
* @param cancellable a #GCancellable
* @returns %TRUE if the certificate is a trust anchor
*/
function trust_is_certificate_anchored(
certificate: Certificate,
purpose: string,
cancellable?: Gio.Cancellable | null,
): boolean;
/**
* Check if the `certificate` is a trust anchor for the given `purpose`. A trust
* anchor is used to verify the signatures on other certificates when verifying
* a certificate chain. Also known as a trusted certificate authority.
*
* When the operation is finished, callback will be called. You can then call
* [func`Gcr`.trust_is_certificate_anchored_finish] to get the result of the
* operation.
* @param certificate a #GcrCertificate to check
* @param purpose the purpose string
* @param cancellable a #GCancellable
*/
function trust_is_certificate_anchored_async(
certificate: Certificate,
purpose: string,
cancellable?: Gio.Cancellable | null,
): Promise<boolean>;
/**
* Check if the `certificate` is a trust anchor for the given `purpose`. A trust
* anchor is used to verify the signatures on other certificates when verifying
* a certificate chain. Also known as a trusted certificate authority.
*
* When the operation is finished, callback will be called. You can then call
* [func`Gcr`.trust_is_certificate_anchored_finish] to get the result of the
* operation.
* @param certificate a #GcrCertificate to check
* @param purpose the purpose string
* @param cancellable a #GCancellable
* @param callback a #GAsyncReadyCallback to call when the operation completes
*/
function trust_is_certificate_anchored_async(
certificate: Certificate,
purpose: string,
cancellable: Gio.Cancellable | null,
callback: Gio.AsyncReadyCallback<Certificate> | null,
): void;
/**
* Check if the `certificate` is a trust anchor for the given `purpose`. A trust
* anchor is used to verify the signatures on other certificates when verifying
* a certificate chain. Also known as a trusted certificate authority.
*
* When the operation is finished, callback will be called. You can then call
* [func`Gcr`.trust_is_certificate_anchored_finish] to get the result of the
* operation.
* @param certificate a #GcrCertificate to check
* @param purpose the purpose string
* @param cancellable a #GCancellable
* @param callback a #GAsyncReadyCallback to call when the operation completes
*/
function trust_is_certificate_anchored_async(
certificate: Certificate,
purpose: string,
cancellable?: Gio.Cancellable | null,
callback?: Gio.AsyncReadyCallback<Certificate> | null,
): Promise<boolean> | void;
/**
* Finishes an asynchronous operation started by
* [func`Gcr`.trust_is_certificate_anchored_async].
*
* In the case of an error, %FALSE is also returned. Check `error` to detect
* if an error occurred.
* @param result the #GAsyncResult passed to the callback
* @returns %TRUE if the certificate is a trust anchor
*/
function trust_is_certificate_anchored_finish(result: Gio.AsyncResult): boolean;
/**
* Checks whether the certificate that can be uniquely identified with the
* given `serial_nr` and `issuer` is marked as distrusted (for example by the
* user, or because it's part of a CRL).
*
* Since we can't directly use [iface`Certificate]` to fetch these values, you
* need to call these with the raw serial number and issuer as provided by the
* PKCS#11 fields `CKA_SERIAL_NR` and `CKA_ISSUER`.
* @param serial_nr The serial number of the certificate
* @param issuer The raw issuer
* @param cancellable a #GCancellable or %NULL
* @returns %TRUE if the certificate is marked as distrusted
*/
function trust_is_certificate_distrusted(
serial_nr: Uint8Array | string,
issuer: Uint8Array | string,
cancellable?: Gio.Cancellable | null,
): boolean;
/**
* Asynchronously checks whether the certificate that can be uniquely
* identified with the given `serial_nr` and `issuer` is marked as distrusted
* (for example by the user, or because it's part of a CRL).
*
* Since we can't directly use [iface`Certificate]` to fetch these values, you
* need to call these with the raw serial number and issuer as provided by the
* PKCS#11 fields `CKA_SERIAL_NR` and `CKA_ISSUER`.
*
* When the operation is finished, `callback` will be called. You can then call
* [func`trust_is_certificate_distrusted_finish]` to get the result of the
* operation.
* @param serial_nr The serial number of the certificate
* @param issuer The raw issuer
* @param cancellable a #GCancellable or %NULL
*/
function trust_is_certificate_distrusted_async(
serial_nr: Uint8Array | string,
issuer: Uint8Array | string,
cancellable?: Gio.Cancellable | null,
): Promise<boolean>;
/**
* Asynchronously checks whether the certificate that can be uniquely
* identified with the given `serial_nr` and `issuer` is marked as distrusted
* (for example by the user, or because it's part of a CRL).
*
* Since we can't directly use [iface`Certificate]` to fetch these values, you
* need to call these with the raw serial number and issuer as provided by the
* PKCS#11 fields `CKA_SERIAL_NR` and `CKA_ISSUER`.
*
* When the operation is finished, `callback` will be called. You can then call
* [func`trust_is_certificate_distrusted_finish]` to get the result of the
* operation.
* @param serial_nr The serial number of the certificate
* @param issuer The raw issuer
* @param cancellable a #GCancellable or %NULL
* @param callback a #GAsyncReadyCallback to call when the operation completes
*/
function trust_is_certificate_distrusted_async(
serial_nr: Uint8Array | string,
issuer: Uint8Array | string,
cancellable: Gio.Cancellable | null,
callback: Gio.AsyncReadyCallback<Uint8Array> | null,
): void;
/**
* Asynchronously checks whether the certificate that can be uniquely
* identified with the given `serial_nr` and `issuer` is marked as distrusted
* (for example by the user, or because it's part of a CRL).
*
* Since we can't directly use [iface`Certificate]` to fetch these values, you
* need to call these with the raw serial number and issuer as provided by the
* PKCS#11 fields `CKA_SERIAL_NR` and `CKA_ISSUER`.
*
* When the operation is finished, `callback` will be called. You can then call
* [func`trust_is_certificate_distrusted_finish]` to get the result of the
* operation.
* @param serial_nr The serial number of the certificate
* @param issuer The raw issuer
* @param cancellable a #GCancellable or %NULL
* @param callback a #GAsyncReadyCallback to call when the operation completes
*/
function trust_is_certificate_distrusted_async(
serial_nr: Uint8Array | string,
issuer: Uint8Array | string,
cancellable?: Gio.Cancellable | null,
callback?: Gio.AsyncReadyCallback<Uint8Array> | null,
): Promise<boolean> | void;
/**
* Finishes an asynchronous operation started by
* [func`trust_is_certificate_distrusted_async]`.
*
* In the case of an error, %FALSE is also returned. Check `error` to detect
* if an error occurred.
* @param result the #GAsyncResult passed to the callback
* @returns %TRUE if the certificate is a trust anchor
*/
function trust_is_certificate_distrusted_finish(result: Gio.AsyncResult): boolean;
/**
* Check if `certificate` is pinned for `purpose` to communicate with `peer`.
* A pinned certificate overrides all other certificate verification.
*
* This call may block, see [func`Gcr`.trust_is_certificate_pinned_async] for
* the non-blocking version.
*
* In the case of an error, %FALSE is also returned. Check `error` to detect
* if an error occurred.
* @param certificate a #GcrCertificate to check
* @param purpose the purpose string
* @param peer the peer for this pinned
* @param cancellable a #GCancellable
* @returns %TRUE if the certificate is pinned for the host and purpose
*/
function trust_is_certificate_pinned(
certificate: Certificate,
purpose: string,
peer: string,
cancellable?: Gio.Cancellable | null,
): boolean;
/**
* Check if `certificate` is pinned for `purpose` to communicate with `peer`. A
* pinned certificate overrides all other certificate verification.
*
* When the operation is finished, callback will be called. You can then call
* [func`Gcr`.trust_is_certificate_pinned_finish] to get the result of the
* operation.
* @param certificate a #GcrCertificate to check
* @param purpose the purpose string
* @param peer the peer for this pinned
* @param cancellable a #GCancellable
*/
function trust_is_certificate_pinned_async(
certificate: Certificate,
purpose: string,
peer: string,
cancellable?: Gio.Cancellable | null,
): Promise<boolean>;
/**
* Check if `certificate` is pinned for `purpose` to communicate with `peer`. A
* pinned certificate overrides all other certificate verification.
*
* When the operation is finished, callback will be called. You can then call
* [func`Gcr`.trust_is_certificate_pinned_finish] to get the result of the
* operation.
* @param certificate a #GcrCertificate to check
* @param purpose the purpose string
* @param peer the peer for this pinned
* @param cancellable a #GCancellable
* @param callback a #GAsyncReadyCallback to call when the operation completes
*/
function trust_is_certificate_pinned_async(
certificate: Certificate,
purpose: string,
peer: string,
cancellable: Gio.Cancellable | null,
callback: Gio.AsyncReadyCallback<Certificate> | null,
): void;
/**
* Check if `certificate` is pinned for `purpose` to communicate with `peer`. A
* pinned certificate overrides all other certificate verification.
*
* When the operation is finished, callback will be called. You can then call
* [func`Gcr`.trust_is_certificate_pinned_finish] to get the result of the
* operation.
* @param certificate a #GcrCertificate to check
* @param purpose the purpose string
* @param peer the peer for this pinned
* @param cancellable a #GCancellable
* @param callback a #GAsyncReadyCallback to call when the operation completes
*/
function trust_is_certificate_pinned_async(
certificate: Certificate,
purpose: string,
peer: string,
cancellable?: Gio.Cancellable | null,
callback?: Gio.AsyncReadyCallback<Certificate> | null,
): Promise<boolean> | void;
/**
* Finishes an asynchronous operation started by
* [func`Gcr`.trust_is_certificate_pinned_async].
*
* In the case of an error, %FALSE is also returned. Check `error` to detect
* if an error occurred.
* @param result the #GAsyncResult passed to the callback
* @returns %TRUE if the certificate is pinned.
*/
function trust_is_certificate_pinned_finish(result: Gio.AsyncResult): boolean;
/**
* Remove a pinned certificate for communication with `peer` for `purpose`.
*
* If the same pinned certificate does not exist, or was already removed,
* then this operation succeeds without error.
*
* This call may block, see [func`Gcr`.trust_remove_pinned_certificate_async]
* for the non-blocking version.
* @param certificate a #GcrCertificate
* @param purpose the purpose string
* @param peer the peer for this pinned certificate
* @param cancellable a #GCancellable
* @returns %TRUE if the pinned certificate no longer exists
*/
function trust_remove_pinned_certificate(
certificate: Certificate,
purpose: string,
peer: string,
cancellable?: Gio.Cancellable | null,
): boolean;
/**
* Remove a pinned certificate for communication with `peer` for `purpose`.
*
* If the same pinned certificate does not exist, or was already removed,
* then this operation succeeds without error.
*
* When the operation is finished, callback will be called. You can then call
* [func`Gcr`.trust_remove_pinned_certificate_finish] to get the result of the
* operation.
* @param certificate a #GcrCertificate
* @param purpose the purpose string
* @param peer the peer for this pinned certificate
* @param cancellable a #GCancellable
*/
function trust_remove_pinned_certificate_async(
certificate: Certificate,
purpose: string,
peer: string,
cancellable?: Gio.Cancellable | null,
): Promise<boolean>;
/**
* Remove a pinned certificate for communication with `peer` for `purpose`.
*
* If the same pinned certificate does not exist, or was already removed,
* then this operation succeeds without error.
*
* When the operation is finished, callback will be called. You can then call
* [func`Gcr`.trust_remove_pinned_certificate_finish] to get the result of the
* operation.
* @param certificate a #GcrCertificate
* @param purpose the purpose string
* @param peer the peer for this pinned certificate
* @param cancellable a #GCancellable
* @param callback a #GAsyncReadyCallback to call when the operation completes
*/
function trust_remove_pinned_certificate_async(
certificate: Certificate,
purpose: string,
peer: string,
cancellable: Gio.Cancellable | null,
callback: Gio.AsyncReadyCallback<Certificate> | null,
): void;
/**
* Remove a pinned certificate for communication with `peer` for `purpose`.
*
* If the same pinned certificate does not exist, or was already removed,
* then this operation succeeds without error.
*
* When the operation is finished, callback will be called. You can then call
* [func`Gcr`.trust_remove_pinned_certificate_finish] to get the result of the
* operation.
* @param certificate a #GcrCertificate
* @param purpose the purpose string
* @param peer the peer for this pinned certificate
* @param cancellable a #GCancellable
* @param callback a #GAsyncReadyCallback to call when the operation completes
*/
function trust_remove_pinned_certificate_async(
certificate: Certificate,
purpose: string,
peer: string,
cancellable?: Gio.Cancellable | null,
callback?: Gio.AsyncReadyCallback<Certificate> | null,
): Promise<boolean> | void;
/**
* Finishes an asynchronous operation started by
* [func`Gcr`.trust_remove_pinned_certificate_async].
* @param result the #GAsyncResult passed to the callback
* @returns %TRUE if the pinned certificate no longer exists
*/
function trust_remove_pinned_certificate_finish(result: Gio.AsyncResult): boolean;
/**
* Flags to be used with the [method`Gcr`.CertificateChain.build] operation.
*/
/**
* Flags to be used with the [method`Gcr`.CertificateChain.build] operation.
*/
export namespace CertificateChainFlags {
export const $gtype: GObject.GType<CertificateChainFlags>;
}
enum CertificateChainFlags {
/**
* no flags
*/
NONE,
/**
* If this flag is specified then no
* lookups for anchors or pinned certificates are done, and the resulting chain
* will be neither anchored or pinned. Additionally no missing certificate
* authorities are looked up in PKCS#11.
*/
NO_LOOKUPS,
}
export namespace CertificateSectionFlags {
export const $gtype: GObject.GType<CertificateSectionFlags>;
}
enum CertificateSectionFlags {
NONE,
IMPORTANT,
}
namespace AccessDescription {
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {}
}
/**
* Describes a location for fetching extra information from the Certificate Authority.
*
* This object is usually part of a
* [class`Gcr`.CertificateExtensionAuthorityInfoAccess] object.
*/
class AccessDescription extends GObject.Object {
static $gtype: GObject.GType<AccessDescription>;
// Constructors
constructor(properties?: Partial<AccessDescription.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Methods
/**
* Returns the location, described by a [class`Gcr`.GeneralName].
* @returns the location
*/
get_location(): GeneralName;
/**
* Returns a user-friendly name of the method for accesssing the resource, if
* known.
* @returns A method name
*/
get_method_name(): string;
/**
* Returns the OID string that describes the method for accessing the resource.
* @returns The method OID
*/
get_method_oid(): string;
}
namespace CertificateChain {
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
length: number;
}
}
/**
* Represents a chain of certificates, normally used to
* validate the trust in a certificate. An X.509 certificate chain has one
* endpoint certificate (the one for which trust is being verified) and then
* in turn the certificate that issued each previous certificate in the chain.
*
* This functionality is for building of certificate chains not for validating
* them. Use your favorite crypto library to validate trust in a certificate
* chain once its built.
*
* The order of certificates in the chain should be first the endpoint
* certificates and then the signing certificates.
*
* Create a new certificate chain with [ctor`CertificateChain`.new] and then
* add the certificates with [method`CertificateChain`.add].
*
* You can then use [method`CertificateChain`.build] to build the remainder of
* the chain. This will lookup missing certificates in PKCS#11 modules and
* also check that each certificate in the chain is the signer of the previous
* one. If a trust anchor, pinned certificate, or self-signed certificate is
* found, then the chain is considered built. Any extra certificates are
* removed from the chain.
*
* Once the certificate chain has been built, you can access its status
* through [method`CertificateChain`.get_status]. The status signifies whether
* the chain is anchored on a trust root, self-signed, incomplete etc. See
* [enum`CertificateChainStatus]` for information on the various statuses.
*
* It's important to understand that the building of a certificate chain is
* merely the first step towards verifying trust in a certificate.
*/
class CertificateChain extends GObject.Object {
static $gtype: GObject.GType<CertificateChain>;
// Properties
/**
* The length of the certificate chain.
*/
get length(): number;
// Constructors
constructor(properties?: Partial<CertificateChain.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](): CertificateChain;
// Methods
/**
* Add `certificate` to the chain. The order of certificates in the chain are
* important. The first certificate should be the endpoint certificate, and
* then come the signers (certificate authorities) each in turn. If a root
* certificate authority is present, it should come last.
*
* Adding a certificate an already built chain (see
* [method`Gcr`.CertificateChain.build]) resets the type of the certificate chain
* to %GCR_CERTIFICATE_CHAIN_UNKNOWN
* @param certificate a #GcrCertificate to add to the chain
*/
add(certificate: Certificate): void;
/**
* Complete a certificate chain. Once a certificate chain has been built
* its status can be examined.
*
* This operation will lookup missing certificates in PKCS#11
* modules and also that each certificate in the chain is the signer of the
* previous one. If a trust anchor, pinned certificate, or self-signed certificate
* is found, then the chain is considered built. Any extra certificates are
* removed from the chain.
*
* It's important to understand that building of a certificate chain does not
* constitute verifying that chain. This is merely the first step towards
* trust verification.
*
* The `purpose` is a string like %GCR_PURPOSE_CLIENT_AUTH and is the purpose
* for which the certificate chain will be used. Trust anchors are looked up
* for this purpose. This argument is required.
*
* The `peer` is usually the host name of the peer whith which this certificate
* chain is being used. It is used to look up pinned certificates that have
* been stored for this peer. If %NULL then no pinned certificates will
* be considered.
*
* If the %GCR_CERTIFICATE_CHAIN_NO_LOOKUPS flag is specified then no
* lookups for anchors or pinned certificates are done, and the resulting chain
* will be neither anchored or pinned. Additionally no missing certificate
* authorities are looked up in PKCS#11
*
* This call will block, see [method`Gcr`.CertificateChain.build_async] for the
* asynchronous version.
* @param purpose the purpose the certificate chain will be used for
* @param peer the peer the certificate chain will be used with, or %NULL
* @param flags chain completion flags
* @param cancellable a #GCancellable or %NULL
* @returns whether the operation completed successfully
*/
build(
purpose: string,
peer: string | null,
flags: CertificateChainFlags | null,
cancellable?: Gio.Cancellable | null,
): boolean;
/**
* Complete a certificate chain. Once a certificate chain has been built
* its status can be examined.
*
* This will lookup missing certificates in PKCS#11
* modules and also that each certificate in the chain is the signer of the
* previous one. If a trust anchor, pinned certificate, or self-signed certificate
* is found, then the chain is considered built. Any extra certificates are
* removed from the chain.
*
* It's important to understand that building of a certificate chain does not
* constitute verifying that chain. This is merely the first step towards
* trust verification.
*
* The `purpose` is a string like %GCR_PURPOSE_CLIENT_AUTH and is the purpose
* for which the certificate chain will be used. Trust anchors are looked up
* for this purpose. This argument is required.
*
* The `peer` is usually the host name of the peer whith which this certificate
* chain is being used. It is used to look up pinned certificates that have
* been stored for this peer. If %NULL then no pinned certificates will
* be considered.
*
* If the %GCR_CERTIFICATE_CHAIN_NO_LOOKUPS flag is specified then no
* lookups for anchors or pinned certificates are done, and the resulting chain
* will be neither anchored or pinned. Additionally no missing certificate
* authorities are looked up in PKCS#11
*
* When the operation is finished, `callback` will be called. You can then call
* gcr_certificate_chain_build_finish() to get the result of the operation.
* @param purpose the purpose the certificate chain will be used for
* @param peer the peer the certificate chain will be used with, or %NULL
* @param flags chain completion flags
* @param cancellable a #GCancellable or %NULL
*/
build_async(
purpose: string,
peer: string | null,
flags: CertificateChainFlags | null,
cancellable?: Gio.Cancellable | null,
): Promise<boolean>;
/**
* Complete a certificate chain. Once a certificate chain has been built
* its status can be examined.
*
* This will lookup missing certificates in PKCS#11
* modules and also that each certificate in the chain is the signer of the
* previous one. If a trust anchor, pinned certificate, or self-signed certificate
* is found, then the chain is considered built. Any extra certificates are
* removed from the chain.
*
* It's important to understand that building of a certificate chain does not
* constitute verifying that chain. This is merely the first step towards
* trust verification.
*
* The `purpose` is a string like %GCR_PURPOSE_CLIENT_AUTH and is the purpose
* for which the certificate chain will be used. Trust anchors are looked up
* for this purpose. This argument is required.
*
* The `peer` is usually the host name of the peer whith which this certificate
* chain is being used. It is used to look up pinned certificates that have
* been stored for this peer. If %NULL then no pinned certificates will
* be considered.
*
* If the %GCR_CERTIFICATE_CHAIN_NO_LOOKUPS flag is specified then no
* lookups for anchors or pinned certificates are done, and the resulting chain
* will be neither anchored or pinned. Additionally no missing certificate
* authorities are looked up in PKCS#11
*
* When the operation is finished, `callback` will be called. You can then call
* gcr_certificate_chain_build_finish() to get the result of the operation.
* @param purpose the purpose the certificate chain will be used for
* @param peer the peer the certificate chain will be used with, or %NULL
* @param flags chain completion flags
* @param cancellable a #GCancellable or %NULL
* @param callback this will be called when the operation completes.
*/
build_async(
purpose: string,
peer: string | null,
flags: CertificateChainFlags | null,
cancellable: Gio.Cancellable | null,
callback: Gio.AsyncReadyCallback<this> | null,
): void;
/**
* Complete a certificate chain. Once a certificate chain has been built
* its status can be examined.
*
* This will lookup missing certificates in PKCS#11
* modules and also that each certificate in the chain is the signer of the
* previous one. If a trust anchor, pinned certificate, or self-signed certificate
* is found, then the chain is considered built. Any extra certificates are
* removed from the chain.
*
* It's important to understand that building of a certificate chain does not
* constitute verifying that chain. This is merely the first step towards
* trust verification.
*
* The `purpose` is a string like %GCR_PURPOSE_CLIENT_AUTH and is the purpose
* for which the certificate chain will be used. Trust anchors are looked up
* for this purpose. This argument is required.
*
* The `peer` is usually the host name of the peer whith which this certificate
* chain is being used. It is used to look up pinned certificates that have
* been stored for this peer. If %NULL then no pinned certificates will
* be considered.
*
* If the %GCR_CERTIFICATE_CHAIN_NO_LOOKUPS flag is specified then no
* lookups for anchors or pinned certificates are done, and the resulting chain
* will be neither anchored or pinned. Additionally no missing certificate
* authorities are looked up in PKCS#11
*
* When the operation is finished, `callback` will be called. You can then call
* gcr_certificate_chain_build_finish() to get the result of the operation.
* @param purpose the purpose the certificate chain will be used for
* @param peer the peer the certificate chain will be used with, or %NULL
* @param flags chain completion flags
* @param cancellable a #GCancellable or %NULL
* @param callback this will be called when the operation completes.
*/
build_async(
purpose: string,
peer: string | null,
flags: CertificateChainFlags | null,
cancellable?: Gio.Cancellable | null,
callback?: Gio.AsyncReadyCallback<this> | null,
): Promise<boolean> | void;
/**
* Finishes an asynchronous operation started by
* gcr_certificate_chain_build_async().
* @param result the #GAsyncResult passed to the callback
* @returns whether the operation succeeded
*/
build_finish(result: Gio.AsyncResult): boolean;
/**
* If the certificate chain has been built and is of status
* %GCR_CERTIFICATE_CHAIN_ANCHORED, then this will return the anchor
* certificate that was found. This is not necessarily a root certificate
* authority. If an intermediate certificate authority in the chain was
* found to be anchored, then that certificate will be returned.
*
* If an anchor is returned it does not mean that the certificate chain has
* been verified, but merely that an anchor has been found.
* @returns the anchor certificate, or %NULL if not anchored.
*/
get_anchor(): Certificate;
/**
* Get a certificate in the chain. It is an error to call this function
* with an invalid index.
* @param index index of the certificate to get
* @returns the certificate
*/
get_certificate(index: number): Certificate;
/**
* Get the endpoint certificate in the chain. This is always the first
* certificate in the chain. The endpoint certificate cannot be anchored.
* @returns the endpoint certificate, or %NULL if the chain is empty
*/
get_endpoint(): Certificate;
/**
* Get the length of the certificate chain.
* @returns the length of the certificate chain
*/
get_length(): number;
/**
* Get the status of a certificate chain. If the certificate chain has not
* been built, then the status will be %GCR_CERTIFICATE_CHAIN_UNKNOWN.
*
* A status of %GCR_CERTIFICATE_CHAIN_ANCHORED does not mean that the
* certificate chain has been verified, but merely that an anchor has been
* found.
* @returns the status of the certificate chain.
*/
get_status(): CertificateChainStatus;
}
namespace CertificateExtension {
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
critical: boolean;
oid: string;
value: GLib.Bytes;
}
}
/**
* An object that describes a certificate extension.
*
* By default, a certificate extension exposes 3 things: an OID,
* whether it's marked as critical, and the raw value.
*
* For known extensions, gcr tries to provide subclasses with the appropriate
* API.
*
* See also [method`Certificate`.list_extensions].
*/
class CertificateExtension extends GObject.Object {
static $gtype: GObject.GType<CertificateExtension>;
// Properties
/**
* Whether this certificate is critical.
*/
get critical(): boolean;
/**
* The Object Identifier (OID) that identifies the extension.
*/
get oid(): string;
/**
* The raw value in bytes of the extension.
*/
get value(): GLib.Bytes;
// Constructors
constructor(properties?: Partial<CertificateExtension.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Methods
/**
* Returns a user-displayable description of the OID that identifies the
* extension, if known.
* @returns A user-facing description, or `null` if unknown
*/
get_description(): string | null;
/**
* Returns the OID that identifies the extension
*/
get_oid(): string;
/**
* Returns the raw value in bytes of the extension.
* @returns The raw value date
*/
get_value(): GLib.Bytes;
/**
* Returns wether the certificate extension is marked critical.
* @returns `true` if the extension is marked critical
*/
is_critical(): boolean;
}
namespace CertificateExtensionAuthorityInfoAccess {
// Constructor properties interface
interface ConstructorProps<A extends GObject.Object = GObject.Object>
extends CertificateExtension.ConstructorProps,
Gio.ListModel.ConstructorProps {
n_items: number;
nItems: number;
}
}
/**
* A certificate extension describing the Authority Information Access (AIA).
*
* This extensions specifies a list of resources of a certificate's issuer that
* one may use to retrieve extra information, such as missing intermediate
* certificates in a certificate chain, or to determine certifiate revocation
* status.
*
* Each access point is exposed as a [class`Gcr`.AccessDescription] object.
*/
class CertificateExtensionAuthorityInfoAccess<A extends GObject.Object = GObject.Object>
extends CertificateExtension
implements Gio.ListModel<A>
{
static $gtype: GObject.GType<CertificateExtensionAuthorityInfoAccess>;
// Properties
/**
* The number of items. See [method`Gio`.ListModel.get_n_items].
*/
get n_items(): number;
/**
* The number of items. See [method`Gio`.ListModel.get_n_items].
*/
get nItems(): number;
// Constructors
constructor(properties?: Partial<CertificateExtensionAuthorityInfoAccess.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Methods
/**
* Returns the description at a given position
* @param position
* @returns The description at position @position
*/
get_description(position: number): AccessDescription;
// Conflicted with Gcr.CertificateExtension.get_description
get_description(...args: never[]): any;
// Inherited methods
/**
* Gets the type of the items in `list`.
*
* All items returned from g_list_model_get_item() are of the type
* returned by this function, or a subtype, or if the type is an
* interface, they are an implementation of that interface.
*
* The item type of a #GListModel can not change during the life of the
* model.
* @returns the #GType of the items contained in @list.
*/
get_item_type(): GObject.GType;
/**
* Gets the number of items in `list`.
*
* Depending on the model implementation, calling this function may be
* less efficient than iterating the list with increasing values for
* `position` until g_list_model_get_item() returns %NULL.
* @returns the number of items in @list.
*/
get_n_items(): number;
/**
* Get the item at `position`.
*
* If `position` is greater than the number of items in `list,` %NULL is
* returned.
*
* %NULL is never returned for an index that is smaller than the length
* of the list.
*
* This function is meant to be used by language bindings in place
* of g_list_model_get_item().
*
* See also: g_list_model_get_n_items()
* @param position the position of the item to fetch
* @returns the object at @position.
*/
get_item(position: number): A | null;
/**
* Emits the #GListModel::items-changed signal on `list`.
*
* This function should only be called by classes implementing
* #GListModel. It has to be called after the internal representation
* of `list` has been updated, because handlers connected to this signal
* might query the new state of the list.
*
* Implementations must only make changes to the model (as visible to
* its consumer) in places that will not cause problems for that
* consumer. For models that are driven directly by a write API (such
* as #GListStore), changes can be reported in response to uses of that
* API. For models that represent remote data, changes should only be
* made from a fresh mainloop dispatch. It is particularly not
* permitted to make changes in response to a call to the #GListModel
* consumer API.
*
* Stated another way: in general, it is assumed that code making a
* series of accesses to the model via the API, without returning to the
* mainloop, and without calling other code, will continue to view the
* same contents of the model.
* @param position the position at which @list changed
* @param removed the number of items removed
* @param added the number of items added
*/
items_changed(position: number, removed: number, added: number): void;
/**
* Get the item at `position`. If `position` is greater than the number of
* items in `list,` %NULL is returned.
*
* %NULL is never returned for an index that is smaller than the length
* of the list. See g_list_model_get_n_items().
*
* The same #GObject instance may not appear more than once in a #GListModel.
* @param position the position of the item to fetch
*/
vfunc_get_item(position: number): A | null;
/**
* Gets the type of the items in `list`.
*
* All items returned from g_list_model_get_item() are of the type
* returned by this function, or a subtype, or if the type is an
* interface, they are an implementation of that interface.
*
* The item type of a #GListModel can not change during the life of the
* model.
*/
vfunc_get_item_type(): GObject.GType;
/**
* Gets the number of items in `list`.
*
* Depending on the model implementation, calling this function may be
* less efficient than iterating the list with increasing values for
* `position` until g_list_model_get_item() returns %NULL.
*/
vfunc_get_n_items(): number;
/**
* Creates a binding between `source_property` on `source` and `target_property`
* on `target`.
*
* Whenever the `source_property` is changed the `target_property` is
* updated using the same value. For instance:
*
*
* ```c
* g_object_bind_property (action, "active", widget, "sensitive", 0);
* ```
*
*
* Will result in the "sensitive" property of the widget #GObject instance to be
* updated with the same value of the "active" property of the action #GObject
* instance.
*
* If `flags` contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
* if `target_property` on `target` changes then the `source_property` on `source`
* will be updated as well.
*
* The binding will automatically be removed when either the `source` or the
* `target` instances are finalized. To remove the binding without affecting the
* `source` and the `target` you can just call g_object_unref() on the returned
* #GBinding instance.
*
* Removing the binding by calling g_object_unref() on it must only be done if
* the binding, `source` and `target` are only used from a single thread and it
* is clear that both `source` and `target` outlive the binding. Especially it
* is not safe to rely on this if the binding, `source` or `target` can be
* finalized from different threads. Keep another reference to the binding and
* use g_binding_unbind() instead to be on the safe side.
*
* A #GObject can have multiple bindings.
* @param source_property the property on @source to bind
* @param target the target #GObject
* @param target_property the property on @target to bind
* @param flags flags to pass to #GBinding
* @returns the #GBinding instance representing the binding between the two #GObject instances. The binding is released whenever the #GBinding reference count reaches zero.
*/
bind_property(
source_property: string,
target: GObject.Object,
target_property: string,
flags: GObject.BindingFlags | null,
): GObject.Binding;
/**
* Complete version of g_object_bind_property().
*
* Creates a binding between `source_property` on `source` and `target_property`
* on `target,` allowing you to set the transformation functions to be used by
* the binding.
*
* If `flags` contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
* if `target_property` on `target` changes then the `source_property` on `source`
* will be updated as well. The `transform_from` function is only used in case
* of bidirectional bindings, otherwise it will be ignored
*
* The binding will automatically be removed when either the `source` or the
* `target` instances are finalized. This will release the reference that is
* being held on the #GBinding instance; if you want to hold on to the
* #GBinding instance, you will need to hold a reference to it.
*
* To remove the binding, call g_binding_unbind().
*
* A #GObject can have multiple bindings.
*
* The same `user_data` parameter will be used for both `transform_to`
* and `transform_from` transformation functions; the `notify` function will
* be called once, when the binding is removed. If you need different data
* for each transformation function, please use
* g_object_bind_property_with_closures() instead.
* @param source_property the property on @source to bind
* @param target the target #GObject
* @param target_property the property on @target to bind
* @param flags flags to pass to #GBinding
* @param transform_to the transformation function from the @source to the @target, or %NULL to use the default
* @param transform_from the transformation function from the @target to the @source, or %NULL to use the default
* @param notify a function to call when disposing the binding, to free resources used by the transformation functions, or %NULL if not required
* @returns the #GBinding instance representing the binding between the two #GObject instances. The binding is released whenever the #GBinding reference count reaches zero.
*/
bind_property_full(
source_property: string,
target: GObject.Object,
target_property: string,
flags: GObject.BindingFlags | null,
transform_to?: GObject.BindingTransformFunc | null,
transform_from?: GObject.BindingTransformFunc | null,
notify?: GLib.DestroyNotify | null,
): GObject.Binding;
// Conflicted with GObject.Object.bind_property_full
bind_property_full(...args: never[]): any;
/**
* This function is intended for #GObject implementations to re-enforce
* a [floating][floating-ref] object reference. Doing this is seldom
* required: all #GInitiallyUnowneds are created with a floating reference
* which usually just needs to be sunken by calling g_object_ref_sink().
*/
force_floating(): void;
/**
* Increases the freeze count on `object`. If the freeze count is
* non-zero, the emission of "notify" signals on `object` is
* stopped. The signals are queued until the freeze count is decreased
* to zero. Duplicate notifications are squashed so that at most one
* #GObject::notify signal is emitted for each property modified while the
* object is frozen.
*
* This is necessary for accessors that modify multiple properties to prevent
* premature notification while the object is still being modified.
*/
freeze_notify(): void;
/**
* Gets a named field from the objects table of associations (see g_object_set_data()).
* @param key name of the key for that association
* @returns the data if found, or %NULL if no such data exists.
*/
get_data(key: string): any | null;
/**
* Gets a property of an object.
*
* The value can be:
* - an empty GObject.Value initialized by G_VALUE_INIT, which will be automatically initialized with the expected type of the property (since GLib 2.60)
* - a GObject.Value initialized with the expected type of the property
* - a GObject.Value initialized with a type to which the expected type of the property can be transformed
*
* In general, a copy is made of the property contents and the caller is responsible for freeing the memory by calling GObject.Value.unset.
*
* Note that GObject.Object.get_property is really intended for language bindings, GObject.Object.get is much more convenient for C programming.
* @param property_name The name of the property to get
* @param value Return location for the property value. Can be an empty GObject.Value initialized by G_VALUE_INIT (auto-initialized with expected type since GLib 2.60), a GObject.Value initialized with the expected property type, or a GObject.Value initialized with a transformable type
*/
get_property(property_name: string, value: GObject.Value | any): any;
/**
* This function gets back user data pointers stored via
* g_object_set_qdata().
* @param quark A #GQuark, naming the user data pointer
* @returns The user data pointer set, or %NULL
*/
get_qdata(quark: GLib.Quark): any | null;
/**
* Gets `n_properties` properties for an `object`.
* Obtained properties will be set to `values`. All properties must be valid.
* Warnings will be emitted and undefined behaviour may result if invalid
* properties are passed in.
* @param names the names of each property to get
* @param values the values of each property to get
*/
getv(names: string[], values: (GObject.Value | any)[]): void;
/**
* Checks whether `object` has a [floating][floating-ref] reference.
* @returns %TRUE if @object has a floating reference
*/
is_floating(): boolean;
/**
* Emits a "notify" signal for the property `property_name` on `object`.
*
* When possible, eg. when signaling a property change from within the class
* that registered the property, you should use g_object_notify_by_pspec()
* instead.
*
* Note that emission of the notify signal may be blocked with
* g_object_freeze_notify(). In this case, the signal emissions are queued
* and will be emitted (in reverse order) when g_object_thaw_notify() is
* called.
* @param property_name the name of a property installed on the class of @object.
*/
notify(property_name: string): void;
/**
* Emits a "notify" signal for the property specified by `pspec` on `object`.
*
* This function omits the property name lookup, hence it is faster than
* g_object_notify().
*
* One way to avoid using g_object_notify() from within the
* class that registered the properties, and using g_object_notify_by_pspec()
* instead, is to store the GParamSpec used with
* g_object_class_install_property() inside a static array, e.g.:
*
*
* ```c
* typedef enum
* {
* PROP_FOO = 1,
* PROP_LAST
* } MyObjectProperty;
*
* static GParamSpec *properties[PROP_LAST];
*
* static void
* my_object_class_init (MyObjectClass *klass)
* {
* properties[PROP_FOO] = g_param_spec_int ("foo", NULL, NULL,
* 0, 100,
* 50,
* G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
* g_object_class_install_property (gobject_class,
* PROP_FOO,
* properties[PROP_FOO]);
* }
* ```
*
*
* and then notify a change on the "foo" property with:
*
*
* ```c
* g_object_notify_by_pspec (self, properties[PROP_FOO]);
* ```
*
* @param pspec the #GParamSpec of a property installed on the class of @object.
*/
notify_by_pspec(pspec: GObject.ParamSpec): void;
/**
* Increases the reference count of `object`.
*
* Since GLib 2.56, if `GLIB_VERSION_MAX_ALLOWED` is 2.56 or greater, the type
* of `object` will be propagated to the return type (using the GCC typeof()
* extension), so any casting the caller needs to do on the return type must be
* explicit.
* @returns the same @object
*/
ref(): GObject.Object;
/**
* Increase the reference count of `object,` and possibly remove the
* [floating][floating-ref] reference, if `object` has a floating reference.
*
* In other words, if the object is floating, then this call "assumes
* ownership" of the floating reference, converting it to a normal
* reference by clearing the floating flag while leaving the reference
* count unchanged. If the object is not floating, then this call
* adds a new normal reference increasing the reference count by one.
*
* Since GLib 2.56, the type of `object` will be propagated to the return type
* under the same conditions as for g_object_ref().
* @returns @object
*/
ref_sink(): GObject.Object;
/**
* Releases all references to other objects. This can be used to break
* reference cycles.
*
* This function should only be called from object system implementations.
*/
run_dispose(): void;
/**
* Each object carries around a table of associations from
* strings to pointers. This function lets you set an association.
*
* If the object already had an association with that name,
* the old association will be destroyed.
*
* Internally, the `key` is converted to a #GQuark using g_quark_from_string().
* This means a copy of `key` is kept permanently (even after `object` has been
* finalized) — so it is recommended to only use a small, bounded set of values
* for `key` in your program, to avoid the #GQuark storage growing unbounded.
* @param key name of the key
* @param data data to associate with that key
*/
set_data(key: string, data?: any | null): void;
/**
* Sets a property on an object.
* @param property_name The name of the property to set
* @param value The value to set the property to
*/
set_property(property_name: string, value: GObject.Value | any): void;
/**
* Remove a specified datum from the object's data associations,
* without invoking the association's destroy handler.
* @param key name of the key
* @returns the data if found, or %NULL if no such data exists.
*/
steal_data(key: string): any | null;
/**
* This function gets back user data pointers stored via
* g_object_set_qdata() and removes the `data` from object
* without invoking its destroy() function (if any was
* set).
* Usually, calling this function is only required to update
* user data pointers with a destroy notifier, for example:
*
* ```c
* void
* object_add_to_user_list (GObject *object,
* const gchar *new_string)
* {
* // the quark, naming the object data
* GQuark quark_string_list = g_quark_from_static_string ("my-string-list");
* // retrieve the old string list
* GList *list = g_object_steal_qdata (object, quark_string_list);
*
* // prepend new string
* list = g_list_prepend (list, g_strdup (new_string));
* // this changed 'list', so we need to set it again
* g_object_set_qdata_full (object, quark_string_list, list, free_string_list);
* }
* static void
* free_string_list (gpointer data)
* {
* GList *node, *list = data;
*
* for (node = list; node; node = node->next)
* g_free (node->data);
* g_list_free (list);
* }
* ```
*
* Using g_object_get_qdata() in the above example, instead of
* g_object_steal_qdata() would have left the destroy function set,
* and thus the partial string list would have been freed upon
* g_object_set_qdata_full().
* @param quark A #GQuark, naming the user data pointer
* @returns The user data pointer set, or %NULL
*/
steal_qdata(quark: GLib.Quark): any | null;
/**
* Reverts the effect of a previous call to
* g_object_freeze_notify(). The freeze count is decreased on `object`
* and when it reaches zero, queued "notify" signals are emitted.
*
* Duplicate notifications for each property are squashed so that at most one
* #GObject::notify signal is emitted for each property, in the reverse order
* in which they have been queued.
*
* It is an error to call this function when the freeze count is zero.
*/
thaw_notify(): void;
/**
* Decreases the reference count of `object`. When its reference count
* drops to 0, the object is finalized (i.e. its memory is freed).
*
* If the pointer to the #GObject may be reused in future (for example, if it is
* an instance variable of another object), it is recommended to clear the
* pointer to %NULL rather than retain a dangling pointer to a potentially
* invalid #GObject instance. Use g_clear_object() for this.
*/
unref(): void;
/**
* This function essentially limits the life time of the `closure` to
* the life time of the object. That is, when the object is finalized,
* the `closure` is invalidated by calling g_closure_invalidate() on
* it, in order to prevent invocations of the closure with a finalized
* (nonexisting) object. Also, g_object_ref() and g_object_unref() are
* added as marshal guards to the `closure,` to ensure that an extra
* reference count is held on `object` during invocation of the
* `closure`. Usually, this function will be called on closures that
* use this `object` as closure data.
* @param closure #GClosure to watch
*/
watch_closure(closure: GObject.Closure): void;
/**
* the `constructed` function is called by g_object_new() as the
* final step of the object creation process. At the point of the call, all
* construction properties have been set on the object. The purpose of this
* call is to allow for object initialisation steps that can only be performed
* after construction properties have been set. `constructed` implementors
* should chain up to the `constructed` call of their parent class to allow it
* to complete its initialisation.
*/
vfunc_constructed(): void;
/**
* emits property change notification for a bunch
* of properties. Overriding `dispatch_properties_changed` should be rarely
* needed.
* @param n_pspecs
* @param pspecs
*/
vfunc_dispatch_properties_changed(n_pspecs: number, pspecs: GObject.ParamSpec): void;
/**
* the `dispose` function is supposed to drop all references to other
* objects, but keep the instance otherwise intact, so that client method
* invocations still work. It may be run multiple times (due to reference
* loops). Before returning, `dispose` should chain up to the `dispose` method
* of the parent class.
*/
vfunc_dispose(): void;
/**
* instance finalization function, should finish the finalization of
* the instance begun in `dispose` and chain up to the `finalize` method of the
* parent class.
*/
vfunc_finalize(): void;
/**
* the generic getter for all properties of this type. Should be
* overridden for every type with properties.
* @param property_id
* @param value
* @param pspec
*/
vfunc_get_property(property_id: number, value: GObject.Value | any, pspec: GObject.ParamSpec): void;
/**
* Emits a "notify" signal for the property `property_name` on `object`.
*
* When possible, eg. when signaling a property change from within the class
* that registered the property, you should use g_object_notify_by_pspec()
* instead.
*
* Note that emission of the notify signal may be blocked with
* g_object_freeze_notify(). In this case, the signal emissions are queued
* and will be emitted (in reverse order) when g_object_thaw_notify() is
* called.
* @param pspec
*/
vfunc_notify(pspec: GObject.ParamSpec): void;
/**
* the generic setter for all properties of this type. Should be
* overridden for every type with properties. If implementations of
* `set_property` don't emit property change notification explicitly, this will
* be done implicitly by the type system. However, if the notify signal is
* emitted explicitly, the type system will not emit it a second time.
* @param property_id
* @param value
* @param pspec
*/
vfunc_set_property(property_id: number, value: GObject.Value | any, pspec: GObject.ParamSpec): void;
/**
* Disconnects a handler from an instance so it will not be called during any future or currently ongoing emissions of the signal it has been connected to.
* @param id Handler ID of the handler to be disconnected
*/
disconnect(id: number): void;
/**
* Sets multiple properties of an object at once. The properties argument should be a dictionary mapping property names to values.
* @param properties Object containing the properties to set
*/
set(properties: { [key: string]: any }): void;
/**
* Blocks a handler of an instance so it will not be called during any signal emissions
* @param id Handler ID of the handler to be blocked
*/
block_signal_handler(id: number): void;
/**
* Unblocks a handler so it will be called again during any signal emissions
* @param id Handler ID of the handler to be unblocked
*/
unblock_signal_handler(id: number): void;
/**
* Stops a signal's emission by the given signal name. This will prevent the default handler and any subsequent signal handlers from being invoked.
* @param detailedName Name of the signal to stop emission of
*/
stop_emission_by_name(detailedName: string): void;
}
namespace CertificateExtensionAuthorityKeyIdentifier {
// Constructor properties interface
interface ConstructorProps extends CertificateExtension.ConstructorProps {}
}
/**
* A certificate extension that contains the authority key identifier (SKI).
*
* This extension may expose the authority key identifier directly, which
* should match the subject key identifier of the parent certificate.
*
* It _may_ also expose a combination of issuer name and serial number of the
* used certificate instead. This is rare however.
*/
class CertificateExtensionAuthorityKeyIdentifier extends CertificateExtension {
static $gtype: GObject.GType<CertificateExtensionAuthorityKeyIdentifier>;
// Constructors
constructor(
properties?: Partial<CertificateExtensionAuthorityKeyIdentifier.ConstructorProps>,
...args: any[]
);
_init(...args: any[]): void;
// Methods
/**
* Returns the issuer, described by a list of [class`Gcr`.GeneralName]s.
* @returns The names of issuer, if set
*/
get_authority_cert_issuer(): GeneralNames | null;
/**
* Returns the serial number of the certificate that was used to sign this
* certificate.
* @returns The serial number, if set
*/
get_authority_cert_serial_number(): GLib.Bytes | null;
/**
* Returns the raw bytes containing the authority key identifier, if present.
* @returns The authority key identifier if present.
*/
get_key_id(): GLib.Bytes | null;
}
namespace CertificateExtensionBasicConstraints {
// Constructor properties interface
interface ConstructorProps extends CertificateExtension.ConstructorProps {}
}
/**
* A certificate extension that can be used to identify the type of the
* certificate subject (whether it is a certificate authority or not).
*/
class CertificateExtensionBasicConstraints extends CertificateExtension {
static $gtype: GObject.GType<CertificateExtensionBasicConstraints>;
// Constructors
constructor(properties?: Partial<CertificateExtensionBasicConstraints.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Methods
/**
* Returns the maximum number of CAs that are allowed in the chain below this
* certificate.
*
* If this is not set, this method returns -1.
*
* Note that this field doesn't really make sense if
* [method`Gcr`.CertificateExtensionBasicConstraints.is_ca] is false.
* @returns The value of "pathLenConstraint", or -1 if not set.
*/
get_path_len_constraint(): number;
/**
* Returns whether the certificate us a certificate authority (CA) certificate
* or an end entity certificate.
* @returns The value of "cA".
*/
is_ca(): boolean;
}
namespace CertificateExtensionCertificatePolicies {
// Constructor properties interface
interface ConstructorProps<A extends GObject.Object = GObject.Object>
extends CertificateExtension.ConstructorProps,
Gio.ListModel.ConstructorProps {
n_items: number;
nItems: number;
}
}
/**
* A certificate extension that lists certificate policies.
*
* Each certificate policy is exposed as a [class`Gcr`.CertificatePolicy]
* object.
*/
class CertificateExtensionCertificatePolicies<A extends GObject.Object = GObject.Object>
extends CertificateExtension
implements Gio.ListModel<A>
{
static $gtype: GObject.GType<CertificateExtensionCertificatePolicies>;
// Properties
/**
* The number of items. See [method`Gio`.ListModel.get_n_items].
*/
get n_items(): number;
/**
* The number of items. See [method`Gio`.ListModel.get_n_items].
*/
get nItems(): number;
// Constructors
constructor(properties?: Partial<CertificateExtensionCertificatePolicies.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Methods
/**
* Returns the policy at a given position
* @param position
* @returns The policy at position @position
*/
get_policy(position: number): CertificatePolicy;
// Inherited methods
/**
* Gets the type of the items in `list`.
*
* All items returned from g_list_model_get_item() are of the type
* returned by this function, or a subtype, or if the type is an
* interface, they are an implementation of that interface.
*
* The item type of a #GListModel can not change during the life of the
* model.
* @returns the #GType of the items contained in @list.
*/
get_item_type(): GObject.GType;
/**
* Gets the number of items in `list`.
*
* Depending on the model implementation, calling this function may be
* less efficient than iterating the list with increasing values for
* `position` until g_list_model_get_item() returns %NULL.
* @returns the number of items in @list.
*/
get_n_items(): number;
/**
* Get the item at `position`.
*
* If `position` is greater than the number of items in `list,` %NULL is
* returned.
*
* %NULL is never returned for an index that is smaller than the length
* of the list.
*
* This function is meant to be used by language bindings in place
* of g_list_model_get_item().
*
* See also: g_list_model_get_n_items()
* @param position the position of the item to fetch
* @returns the object at @position.
*/
get_item(position: number): A | null;
/**
* Emits the #GListModel::items-changed signal on `list`.
*
* This function should only be called by classes implementing
* #GListModel. It has to be called after the internal representation
* of `list` has been updated, because handlers connected to this signal
* might query the new state of the list.
*
* Implementations must only make changes to the model (as visible to
* its consumer) in places that will not cause problems for that
* consumer. For models that are driven directly by a write API (such
* as #GListStore), changes can be reported in response to uses of that
* API. For models that represent remote data, changes should only be
* made from a fresh mainloop dispatch. It is particularly not
* permitted to make changes in response to a call to the #GListModel
* consumer API.
*
* Stated another way: in general, it is assumed that code making a
* series of accesses to the model via the API, without returning to the
* mainloop, and without calling other code, will continue to view the
* same contents of the model.
* @param position the position at which @list changed
* @param removed the number of items removed
* @param added the number of items added
*/
items_changed(position: number, removed: number, added: number): void;
/**
* Get the item at `position`. If `position` is greater than the number of
* items in `list,` %NULL is returned.
*
* %NULL is never returned for an index that is smaller than the length
* of the list. See g_list_model_get_n_items().
*
* The same #GObject instance may not appear more than once in a #GListModel.
* @param position the position of the item to fetch
*/
vfunc_get_item(position: number): A | null;
/**
* Gets the type of the items in `list`.
*
* All items returned from g_list_model_get_item() are of the type
* returned by this function, or a subtype, or if the type is an
* interface, they are an implementation of that interface.
*
* The item type of a #GListModel can not change during the life of the
* model.
*/
vfunc_get_item_type(): GObject.GType;
/**
* Gets the number of items in `list`.
*
* Depending on the model implementation, calling this function may be
* less efficient than iterating the list with increasing values for
* `position` until g_list_model_get_item() returns %NULL.
*/
vfunc_get_n_items(): number;
/**
* Creates a binding between `source_property` on `source` and `target_property`
* on `target`.
*
* Whenever the `source_property` is changed the `target_property` is
* updated using the same value. For instance:
*
*
* ```c
* g_object_bind_property (action, "active", widget, "sensitive", 0);
* ```
*
*
* Will result in the "sensitive" property of the widget #GObject instance to be
* updated with the same value of the "active" property of the action #GObject
* instance.
*
* If `flags` contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
* if `target_property` on `target` changes then the `source_property` on `source`
* will be updated as well.
*
* The binding will automatically be removed when either the `source` or the
* `target` instances are finalized. To remove the binding without affecting the
* `source` and the `target` you can just call g_object_unref() on the returned
* #GBinding instance.
*
* Removing the binding by calling g_object_unref() on it must only be done if
* the binding, `source` and `target` are only used from a single thread and it
* is clear that both `source` and `target` outlive the binding. Especially it
* is not safe to rely on this if the binding, `source` or `target` can be
* finalized from different threads. Keep another reference to the binding and
* use g_binding_unbind() instead to be on the safe side.
*
* A #GObject can have multiple bindings.
* @param source_property the property on @source to bind
* @param target the target #GObject
* @param target_property the property on @target to bind
* @param flags flags to pass to #GBinding
* @returns the #GBinding instance representing the binding between the two #GObject instances. The binding is released whenever the #GBinding reference count reaches zero.
*/
bind_property(
source_property: string,
target: GObject.Object,
target_property: string,
flags: GObject.BindingFlags | null,
): GObject.Binding;
/**
* Complete version of g_object_bind_property().
*
* Creates a binding between `source_property` on `source` and `target_property`
* on `target,` allowing you to set the transformation functions to be used by
* the binding.
*
* If `flags` contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
* if `target_property` on `target` changes then the `source_property` on `source`
* will be updated as well. The `transform_from` function is only used in case
* of bidirectional bindings, otherwise it will be ignored
*
* The binding will automatically be removed when either the `source` or the
* `target` instances are finalized. This will release the reference that is
* being held on the #GBinding instance; if you want to hold on to the
* #GBinding instance, you will need to hold a reference to it.
*
* To remove the binding, call g_binding_unbind().
*
* A #GObject can have multiple bindings.
*
* The same `user_data` parameter will be used for both `transform_to`
* and `transform_from` transformation functions; the `notify` function will
* be called once, when the binding is removed. If you need different data
* for each transformation function, please use
* g_object_bind_property_with_closures() instead.
* @param source_property the property on @source to bind
* @param target the target #GObject
* @param target_property the property on @target to bind
* @param flags flags to pass to #GBinding
* @param transform_to the transformation function from the @source to the @target, or %NULL to use the default
* @param transform_from the transformation function from the @target to the @source, or %NULL to use the default
* @param notify a function to call when disposing the binding, to free resources used by the transformation functions, or %NULL if not required
* @returns the #GBinding instance representing the binding between the two #GObject instances. The binding is released whenever the #GBinding reference count reaches zero.
*/
bind_property_full(
source_property: string,
target: GObject.Object,
target_property: string,
flags: GObject.BindingFlags | null,
transform_to?: GObject.BindingTransformFunc | null,
transform_from?: GObject.BindingTransformFunc | null,
notify?: GLib.DestroyNotify | null,
): GObject.Binding;
// Conflicted with GObject.Object.bind_property_full
bind_property_full(...args: never[]): any;
/**
* This function is intended for #GObject implementations to re-enforce
* a [floating][floating-ref] object reference. Doing this is seldom
* required: all #GInitiallyUnowneds are created with a floating reference
* which usually just needs to be sunken by calling g_object_ref_sink().
*/
force_floating(): void;
/**
* Increases the freeze count on `object`. If the freeze count is
* non-zero, the emission of "notify" signals on `object` is
* stopped. The signals are queued until the freeze count is decreased
* to zero. Duplicate notifications are squashed so that at most one
* #GObject::notify signal is emitted for each property modified while the
* object is frozen.
*
* This is necessary for accessors that modify multiple properties to prevent
* premature notification while the object is still being modified.
*/
freeze_notify(): void;
/**
* Gets a named field from the objects table of associations (see g_object_set_data()).
* @param key name of the key for that association
* @returns the data if found, or %NULL if no such data exists.
*/
get_data(key: string): any | null;
/**
* Gets a property of an object.
*
* The value can be:
* - an empty GObject.Value initialized by G_VALUE_INIT, which will be automatically initialized with the expected type of the property (since GLib 2.60)
* - a GObject.Value initialized with the expected type of the property
* - a GObject.Value initialized with a type to which the expected type of the property can be transformed
*
* In general, a copy is made of the property contents and the caller is responsible for freeing the memory by calling GObject.Value.unset.
*
* Note that GObject.Object.get_property is really intended for language bindings, GObject.Object.get is much more convenient for C programming.
* @param property_name The name of the property to get
* @param value Return location for the property value. Can be an empty GObject.Value initialized by G_VALUE_INIT (auto-initialized with expected type since GLib 2.60), a GObject.Value initialized with the expected property type, or a GObject.Value initialized with a transformable type
*/
get_property(property_name: string, value: GObject.Value | any): any;
/**
* This function gets back user data pointers stored via
* g_object_set_qdata().
* @param quark A #GQuark, naming the user data pointer
* @returns The user data pointer set, or %NULL
*/
get_qdata(quark: GLib.Quark): any | null;
/**
* Gets `n_properties` properties for an `object`.
* Obtained properties will be set to `values`. All properties must be valid.
* Warnings will be emitted and undefined behaviour may result if invalid
* properties are passed in.
* @param names the names of each property to get
* @param values the values of each property to get
*/
getv(names: string[], values: (GObject.Value | any)[]): void;
/**
* Checks whether `object` has a [floating][floating-ref] reference.
* @returns %TRUE if @object has a floating reference
*/
is_floating(): boolean;
/**
* Emits a "notify" signal for the property `property_name` on `object`.
*
* When possible, eg. when signaling a property change from within the class
* that registered the property, you should use g_object_notify_by_pspec()
* instead.
*
* Note that emission of the notify signal may be blocked with
* g_object_freeze_notify(). In this case, the signal emissions are queued
* and will be emitted (in reverse order) when g_object_thaw_notify() is
* called.
* @param property_name the name of a property installed on the class of @object.
*/
notify(property_name: string): void;
/**
* Emits a "notify" signal for the property specified by `pspec` on `object`.
*
* This function omits the property name lookup, hence it is faster than
* g_object_notify().
*
* One way to avoid using g_object_notify() from within the
* class that registered the properties, and using g_object_notify_by_pspec()
* instead, is to store the GParamSpec used with
* g_object_class_install_property() inside a static array, e.g.:
*
*
* ```c
* typedef enum
* {
* PROP_FOO = 1,
* PROP_LAST
* } MyObjectProperty;
*
* static GParamSpec *properties[PROP_LAST];
*
* static void
* my_object_class_init (MyObjectClass *klass)
* {
* properties[PROP_FOO] = g_param_spec_int ("foo", NULL, NULL,
* 0, 100,
* 50,
* G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
* g_object_class_install_property (gobject_class,
* PROP_FOO,
* properties[PROP_FOO]);
* }
* ```
*
*
* and then notify a change on the "foo" property with:
*
*
* ```c
* g_object_notify_by_pspec (self, properties[PROP_FOO]);
* ```
*
* @param pspec the #GParamSpec of a property installed on the class of @object.
*/
notify_by_pspec(pspec: GObject.ParamSpec): void;
/**
* Increases the reference count of `object`.
*
* Since GLib 2.56, if `GLIB_VERSION_MAX_ALLOWED` is 2.56 or greater, the type
* of `object` will be propagated to the return type (using the GCC typeof()
* extension), so any casting the caller needs to do on the return type must be
* explicit.
* @returns the same @object
*/
ref(): GObject.Object;
/**
* Increase the reference count of `object,` and possibly remove the
* [floating][floating-ref] reference, if `object` has a floating reference.
*
* In other words, if the object is floating, then this call "assumes
* ownership" of the floating reference, converting it to a normal
* reference by clearing the floating flag while leaving the reference
* count unchanged. If the object is not floating, then this call
* adds a new normal reference increasing the reference count by one.
*
* Since GLib 2.56, the type of `object` will be propagated to the return type
* under the same conditions as for g_object_ref().
* @returns @object
*/
ref_sink(): GObject.Object;
/**
* Releases all references to other objects. This can be used to break
* reference cycles.
*
* This function should only be called from object system implementations.
*/
run_dispose(): void;
/**
* Each object carries around a table of associations from
* strings to pointers. This function lets you set an association.
*
* If the object already had an association with that name,
* the old association will be destroyed.
*
* Internally, the `key` is converted to a #GQuark using g_quark_from_string().
* This means a copy of `key` is kept permanently (even after `object` has been
* finalized) — so it is recommended to only use a small, bounded set of values
* for `key` in your program, to avoid the #GQuark storage growing unbounded.
* @param key name of the key
* @param data data to associate with that key
*/
set_data(key: string, data?: any | null): void;
/**
* Sets a property on an object.
* @param property_name The name of the property to set
* @param value The value to set the property to
*/
set_property(property_name: string, value: GObject.Value | any): void;
/**
* Remove a specified datum from the object's data associations,
* without invoking the association's destroy handler.
* @param key name of the key
* @returns the data if found, or %NULL if no such data exists.
*/
steal_data(key: string): any | null;
/**
* This function gets back user data pointers stored via
* g_object_set_qdata() and removes the `data` from object
* without invoking its destroy() function (if any was
* set).
* Usually, calling this function is only required to update
* user data pointers with a destroy notifier, for example:
*
* ```c
* void
* object_add_to_user_list (GObject *object,
* const gchar *new_string)
* {
* // the quark, naming the object data
* GQuark quark_string_list = g_quark_from_static_string ("my-string-list");
* // retrieve the old string list
* GList *list = g_object_steal_qdata (object, quark_string_list);
*
* // prepend new string
* list = g_list_prepend (list, g_strdup (new_string));
* // this changed 'list', so we need to set it again
* g_object_set_qdata_full (object, quark_string_list, list, free_string_list);
* }
* static void
* free_string_list (gpointer data)
* {
* GList *node, *list = data;
*
* for (node = list; node; node = node->next)
* g_free (node->data);
* g_list_free (list);
* }
* ```
*
* Using g_object_get_qdata() in the above example, instead of
* g_object_steal_qdata() would have left the destroy function set,
* and thus the partial string list would have been freed upon
* g_object_set_qdata_full().
* @param quark A #GQuark, naming the user data pointer
* @returns The user data pointer set, or %NULL
*/
steal_qdata(quark: GLib.Quark): any | null;
/**
* Reverts the effect of a previous call to
* g_object_freeze_notify(). The freeze count is decreased on `object`
* and when it reaches zero, queued "notify" signals are emitted.
*
* Duplicate notifications for each property are squashed so that at most one
* #GObject::notify signal is emitted for each property, in the reverse order
* in which they have been queued.
*
* It is an error to call this function when the freeze count is zero.
*/
thaw_notify(): void;
/**
* Decreases the reference count of `object`. When its reference count
* drops to 0, the object is finalized (i.e. its memory is freed).
*
* If the pointer to the #GObject may be reused in future (for example, if it is
* an instance variable of another object), it is recommended to clear the
* pointer to %NULL rather than retain a dangling pointer to a potentially
* invalid #GObject instance. Use g_clear_object() for this.
*/
unref(): void;
/**
* This function essentially limits the life time of the `closure` to
* the life time of the object. That is, when the object is finalized,
* the `closure` is invalidated by calling g_closure_invalidate() on
* it, in order to prevent invocations of the closure with a finalized
* (nonexisting) object. Also, g_object_ref() and g_object_unref() are
* added as marshal guards to the `closure,` to ensure that an extra
* reference count is held on `object` during invocation of the
* `closure`. Usually, this function will be called on closures that
* use this `object` as closure data.
* @param closure #GClosure to watch
*/
watch_closure(closure: GObject.Closure): void;
/**
* the `constructed` function is called by g_object_new() as the
* final step of the object creation process. At the point of the call, all
* construction properties have been set on the object. The purpose of this
* call is to allow for object initialisation steps that can only be performed
* after construction properties have been set. `constructed` implementors
* should chain up to the `constructed` call of their parent class to allow it
* to complete its initialisation.
*/
vfunc_constructed(): void;
/**
* emits property change notification for a bunch
* of properties. Overriding `dispatch_properties_changed` should be rarely
* needed.
* @param n_pspecs
* @param pspecs
*/
vfunc_dispatch_properties_changed(n_pspecs: number, pspecs: GObject.ParamSpec): void;
/**
* the `dispose` function is supposed to drop all references to other
* objects, but keep the instance otherwise intact, so that client method
* invocations still work. It may be run multiple times (due to reference
* loops). Before returning, `dispose` should chain up to the `dispose` method
* of the parent class.
*/
vfunc_dispose(): void;
/**
* instance finalization function, should finish the finalization of
* the instance begun in `dispose` and chain up to the `finalize` method of the
* parent class.
*/
vfunc_finalize(): void;
/**
* the generic getter for all properties of this type. Should be
* overridden for every type with properties.
* @param property_id
* @param value
* @param pspec
*/
vfunc_get_property(property_id: number, value: GObject.Value | any, pspec: GObject.ParamSpec): void;
/**
* Emits a "notify" signal for the property `property_name` on `object`.
*
* When possible, eg. when signaling a property change from within the class
* that registered the property, you should use g_object_notify_by_pspec()
* instead.
*
* Note that emission of the notify signal may be blocked with
* g_object_freeze_notify(). In this case, the signal emissions are queued
* and will be emitted (in reverse order) when g_object_thaw_notify() is
* called.
* @param pspec
*/
vfunc_notify(pspec: GObject.ParamSpec): void;
/**
* the generic setter for all properties of this type. Should be
* overridden for every type with properties. If implementations of
* `set_property` don't emit property change notification explicitly, this will
* be done implicitly by the type system. However, if the notify signal is
* emitted explicitly, the type system will not emit it a second time.
* @param property_id
* @param value
* @param pspec
*/
vfunc_set_property(property_id: number, value: GObject.Value | any, pspec: GObject.ParamSpec): void;
/**
* Disconnects a handler from an instance so it will not be called during any future or currently ongoing emissions of the signal it has been connected to.
* @param id Handler ID of the handler to be disconnected
*/
disconnect(id: number): void;
/**
* Sets multiple properties of an object at once. The properties argument should be a dictionary mapping property names to values.
* @param properties Object containing the properties to set
*/
set(properties: { [key: string]: any }): void;
/**
* Blocks a handler of an instance so it will not be called during any signal emissions
* @param id Handler ID of the handler to be blocked
*/
block_signal_handler(id: number): void;
/**
* Unblocks a handler so it will be called again during any signal emissions
* @param id Handler ID of the handler to be unblocked
*/
unblock_signal_handler(id: number): void;
/**
* Stops a signal's emission by the given signal name. This will prevent the default handler and any subsequent signal handlers from being invoked.
* @param detailedName Name of the signal to stop emission of
*/
stop_emission_by_name(detailedName: string): void;
}
namespace CertificateExtensionCrlDistributionPoints {
// Constructor properties interface
interface ConstructorProps<A extends GObject.Object = GObject.Object>
extends CertificateExtension.ConstructorProps,
Gio.ListModel.ConstructorProps {
n_items: number;
nItems: number;
}
}
/**
* A certificate extension that lists CRL distribution points.
*
* Each distribution point is exposed as a [class`Gcr`.DistributionPoint]
* object.
*/
class CertificateExtensionCrlDistributionPoints<A extends GObject.Object = GObject.Object>
extends CertificateExtension
implements Gio.ListModel<A>
{
static $gtype: GObject.GType<CertificateExtensionCrlDistributionPoints>;
// Properties
/**
* The number of items. See [method`Gio`.ListModel.get_n_items].
*/
get n_items(): number;
/**
* The number of items. See [method`Gio`.ListModel.get_n_items].
*/
get nItems(): number;
// Constructors
constructor(
properties?: Partial<CertificateExtensionCrlDistributionPoints.ConstructorProps>,
...args: any[]
);
_init(...args: any[]): void;
// Methods
/**
* Returns the CRL distribution point at a given position.
*
* It is illegal to call this on an invalid position.
* @param position
* @returns The distribution point at position @position
*/
get_distribution_point(position: number): DistributionPoint;
// Inherited methods
/**
* Gets the type of the items in `list`.
*
* All items returned from g_list_model_get_item() are of the type
* returned by this function, or a subtype, or if the type is an
* interface, they are an implementation of that interface.
*
* The item type of a #GListModel can not change during the life of the
* model.
* @returns the #GType of the items contained in @list.
*/
get_item_type(): GObject.GType;
/**
* Gets the number of items in `list`.
*
* Depending on the model implementation, calling this function may be
* less efficient than iterating the list with increasing values for
* `position` until g_list_model_get_item() returns %NULL.
* @returns the number of items in @list.
*/
get_n_items(): number;
/**
* Get the item at `position`.
*
* If `position` is greater than the number of items in `list,` %NULL is
* returned.
*
* %NULL is never returned for an index that is smaller than the length
* of the list.
*
* This function is meant to be used by language bindings in place
* of g_list_model_get_item().
*
* See also: g_list_model_get_n_items()
* @param position the position of the item to fetch
* @returns the object at @position.
*/
get_item(position: number): A | null;
/**
* Emits the #GListModel::items-changed signal on `list`.
*
* This function should only be called by classes implementing
* #GListModel. It has to be called after the internal representation
* of `list` has been updated, because handlers connected to this signal
* might query the new state of the list.
*
* Implementations must only make changes to the model (as visible to
* its consumer) in places that will not cause problems for that
* consumer. For models that are driven directly by a write API (such
* as #GListStore), changes can be reported in response to uses of that
* API. For models that represent remote data, changes should only be
* made from a fresh mainloop dispatch. It is particularly not
* permitted to make changes in response to a call to the #GListModel
* consumer API.
*
* Stated another way: in general, it is assumed that code making a
* series of accesses to the model via the API, without returning to the
* mainloop, and without calling other code, will continue to view the
* same contents of the model.
* @param position the position at which @list changed
* @param removed the number of items removed
* @param added the number of items added
*/
items_changed(position: number, removed: number, added: number): void;
/**
* Get the item at `position`. If `position` is greater than the number of
* items in `list,` %NULL is returned.
*
* %NULL is never returned for an index that is smaller than the length
* of the list. See g_list_model_get_n_items().
*
* The same #GObject instance may not appear more than once in a #GListModel.
* @param position the position of the item to fetch
*/
vfunc_get_item(position: number): A | null;
/**
* Gets the type of the items in `list`.
*
* All items returned from g_list_model_get_item() are of the type
* returned by this function, or a subtype, or if the type is an
* interface, they are an implementation of that interface.
*
* The item type of a #GListModel can not change during the life of the
* model.
*/
vfunc_get_item_type(): GObject.GType;
/**
* Gets the number of items in `list`.
*
* Depending on the model implementation, calling this function may be
* less efficient than iterating the list with increasing values for
* `position` until g_list_model_get_item() returns %NULL.
*/
vfunc_get_n_items(): number;
/**
* Creates a binding between `source_property` on `source` and `target_property`
* on `target`.
*
* Whenever the `source_property` is changed the `target_property` is
* updated using the same value. For instance:
*
*
* ```c
* g_object_bind_property (action, "active", widget, "sensitive", 0);
* ```
*
*
* Will result in the "sensitive" property of the widget #GObject instance to be
* updated with the same value of the "active" property of the action #GObject
* instance.
*
* If `flags` contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
* if `target_property` on `target` changes then the `source_property` on `source`
* will be updated as well.
*
* The binding will automatically be removed when either the `source` or the
* `target` instances are finalized. To remove the binding without affecting the
* `source` and the `target` you can just call g_object_unref() on the returned
* #GBinding instance.
*
* Removing the binding by calling g_object_unref() on it must only be done if
* the binding, `source` and `target` are only used from a single thread and it
* is clear that both `source` and `target` outlive the binding. Especially it
* is not safe to rely on this if the binding, `source` or `target` can be
* finalized from different threads. Keep another reference to the binding and
* use g_binding_unbind() instead to be on the safe side.
*
* A #GObject can have multiple bindings.
* @param source_property the property on @source to bind
* @param target the target #GObject
* @param target_property the property on @target to bind
* @param flags flags to pass to #GBinding
* @returns the #GBinding instance representing the binding between the two #GObject instances. The binding is released whenever the #GBinding reference count reaches zero.
*/
bind_property(
source_property: string,
target: GObject.Object,
target_property: string,
flags: GObject.BindingFlags | null,
): GObject.Binding;
/**
* Complete version of g_object_bind_property().
*
* Creates a binding between `source_property` on `source` and `target_property`
* on `target,` allowing you to set the transformation functions to be used by
* the binding.
*
* If `flags` contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
* if `target_property` on `target` changes then the `source_property` on `source`
* will be updated as well. The `transform_from` function is only used in case
* of bidirectional bindings, otherwise it will be ignored
*
* The binding will automatically be removed when either the `source` or the
* `target` instances are finalized. This will release the reference that is
* being held on the #GBinding instance; if you want to hold on to the
* #GBinding instance, you will need to hold a reference to it.
*
* To remove the binding, call g_binding_unbind().
*
* A #GObject can have multiple bindings.
*
* The same `user_data` parameter will be used for both `transform_to`
* and `transform_from` transformation functions; the `notify` function will
* be called once, when the binding is removed. If you need different data
* for each transformation function, please use
* g_object_bind_property_with_closures() instead.
* @param source_property the property on @source to bind
* @param target the target #GObject
* @param target_property the property on @target to bind
* @param flags flags to pass to #GBinding
* @param transform_to the transformation function from the @source to the @target, or %NULL to use the default
* @param transform_from the transformation function from the @target to the @source, or %NULL to use the default
* @param notify a function to call when disposing the binding, to free resources used by the transformation functions, or %NULL if not required
* @returns the #GBinding instance representing the binding between the two #GObject instances. The binding is released whenever the #GBinding reference count reaches zero.
*/
bind_property_full(
source_property: string,
target: GObject.Object,
target_property: string,
flags: GObject.BindingFlags | null,
transform_to?: GObject.BindingTransformFunc | null,
transform_from?: GObject.BindingTransformFunc | null,
notify?: GLib.DestroyNotify | null,
): GObject.Binding;
// Conflicted with GObject.Object.bind_property_full
bind_property_full(...args: never[]): any;
/**
* This function is intended for #GObject implementations to re-enforce
* a [floating][floating-ref] object reference. Doing this is seldom
* required: all #GInitiallyUnowneds are created with a floating reference
* which usually just needs to be sunken by calling g_object_ref_sink().
*/
force_floating(): void;
/**
* Increases the freeze count on `object`. If the freeze count is
* non-zero, the emission of "notify" signals on `object` is
* stopped. The signals are queued until the freeze count is decreased
* to zero. Duplicate notifications are squashed so that at most one
* #GObject::notify signal is emitted for each property modified while the
* object is frozen.
*
* This is necessary for accessors that modify multiple properties to prevent
* premature notification while the object is still being modified.
*/
freeze_notify(): void;
/**
* Gets a named field from the objects table of associations (see g_object_set_data()).
* @param key name of the key for that association
* @returns the data if found, or %NULL if no such data exists.
*/
get_data(key: string): any | null;
/**
* Gets a property of an object.
*
* The value can be:
* - an empty GObject.Value initialized by G_VALUE_INIT, which will be automatically initialized with the expected type of the property (since GLib 2.60)
* - a GObject.Value initialized with the expected type of the property
* - a GObject.Value initialized with a type to which the expected type of the property can be transformed
*
* In general, a copy is made of the property contents and the caller is responsible for freeing the memory by calling GObject.Value.unset.
*
* Note that GObject.Object.get_property is really intended for language bindings, GObject.Object.get is much more convenient for C programming.
* @param property_name The name of the property to get
* @param value Return location for the property value. Can be an empty GObject.Value initialized by G_VALUE_INIT (auto-initialized with expected type since GLib 2.60), a GObject.Value initialized with the expected property type, or a GObject.Value initialized with a transformable type
*/
get_property(property_name: string, value: GObject.Value | any): any;
/**
* This function gets back user data pointers stored via
* g_object_set_qdata().
* @param quark A #GQuark, naming the user data pointer
* @returns The user data pointer set, or %NULL
*/
get_qdata(quark: GLib.Quark): any | null;
/**
* Gets `n_properties` properties for an `object`.
* Obtained properties will be set to `values`. All properties must be valid.
* Warnings will be emitted and undefined behaviour may result if invalid
* properties are passed in.
* @param names the names of each property to get
* @param values the values of each property to get
*/
getv(names: string[], values: (GObject.Value | any)[]): void;
/**
* Checks whether `object` has a [floating][floating-ref] reference.
* @returns %TRUE if @object has a floating reference
*/
is_floating(): boolean;
/**
* Emits a "notify" signal for the property `property_name` on `object`.
*
* When possible, eg. when signaling a property change from within the class
* that registered the property, you should use g_object_notify_by_pspec()
* instead.
*
* Note that emission of the notify signal may be blocked with
* g_object_freeze_notify(). In this case, the signal emissions are queued
* and will be emitted (in reverse order) when g_object_thaw_notify() is
* called.
* @param property_name the name of a property installed on the class of @object.
*/
notify(property_name: string): void;
/**
* Emits a "notify" signal for the property specified by `pspec` on `object`.
*
* This function omits the property name lookup, hence it is faster than
* g_object_notify().
*
* One way to avoid using g_object_notify() from within the
* class that registered the properties, and using g_object_notify_by_pspec()
* instead, is to store the GParamSpec used with
* g_object_class_install_property() inside a static array, e.g.:
*
*
* ```c
* typedef enum
* {
* PROP_FOO = 1,
* PROP_LAST
* } MyObjectProperty;
*
* static GParamSpec *properties[PROP_LAST];
*
* static void
* my_object_class_init (MyObjectClass *klass)
* {
* properties[PROP_FOO] = g_param_spec_int ("foo", NULL, NULL,
* 0, 100,
* 50,
* G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
* g_object_class_install_property (gobject_class,
* PROP_FOO,
* properties[PROP_FOO]);
* }
* ```
*
*
* and then notify a change on the "foo" property with:
*
*
* ```c
* g_object_notify_by_pspec (self, properties[PROP_FOO]);
* ```
*
* @param pspec the #GParamSpec of a property installed on the class of @object.
*/
notify_by_pspec(pspec: GObject.ParamSpec): void;
/**
* Increases the reference count of `object`.
*
* Since GLib 2.56, if `GLIB_VERSION_MAX_ALLOWED` is 2.56 or greater, the type
* of `object` will be propagated to the return type (using the GCC typeof()
* extension), so any casting the caller needs to do on the return type must be
* explicit.
* @returns the same @object
*/
ref(): GObject.Object;
/**
* Increase the reference count of `object,` and possibly remove the
* [floating][floating-ref] reference, if `object` has a floating reference.
*
* In other words, if the object is floating, then this call "assumes
* ownership" of the floating reference, converting it to a normal
* reference by clearing the floating flag while leaving the reference
* count unchanged. If the object is not floating, then this call
* adds a new normal reference increasing the reference count by one.
*
* Since GLib 2.56, the type of `object` will be propagated to the return type
* under the same conditions as for g_object_ref().
* @returns @object
*/
ref_sink(): GObject.Object;
/**
* Releases all references to other objects. This can be used to break
* reference cycles.
*
* This function should only be called from object system implementations.
*/
run_dispose(): void;
/**
* Each object carries around a table of associations from
* strings to pointers. This function lets you set an association.
*
* If the object already had an association with that name,
* the old association will be destroyed.
*
* Internally, the `key` is converted to a #GQuark using g_quark_from_string().
* This means a copy of `key` is kept permanently (even after `object` has been
* finalized) — so it is recommended to only use a small, bounded set of values
* for `key` in your program, to avoid the #GQuark storage growing unbounded.
* @param key name of the key
* @param data data to associate with that key
*/
set_data(key: string, data?: any | null): void;
/**
* Sets a property on an object.
* @param property_name The name of the property to set
* @param value The value to set the property to
*/
set_property(property_name: string, value: GObject.Value | any): void;
/**
* Remove a specified datum from the object's data associations,
* without invoking the association's destroy handler.
* @param key name of the key
* @returns the data if found, or %NULL if no such data exists.
*/
steal_data(key: string): any | null;
/**
* This function gets back user data pointers stored via
* g_object_set_qdata() and removes the `data` from object
* without invoking its destroy() function (if any was
* set).
* Usually, calling this function is only required to update
* user data pointers with a destroy notifier, for example:
*
* ```c
* void
* object_add_to_user_list (GObject *object,
* const gchar *new_string)
* {
* // the quark, naming the object data
* GQuark quark_string_list = g_quark_from_static_string ("my-string-list");
* // retrieve the old string list
* GList *list = g_object_steal_qdata (object, quark_string_list);
*
* // prepend new string
* list = g_list_prepend (list, g_strdup (new_string));
* // this changed 'list', so we need to set it again
* g_object_set_qdata_full (object, quark_string_list, list, free_string_list);
* }
* static void
* free_string_list (gpointer data)
* {
* GList *node, *list = data;
*
* for (node = list; node; node = node->next)
* g_free (node->data);
* g_list_free (list);
* }
* ```
*
* Using g_object_get_qdata() in the above example, instead of
* g_object_steal_qdata() would have left the destroy function set,
* and thus the partial string list would have been freed upon
* g_object_set_qdata_full().
* @param quark A #GQuark, naming the user data pointer
* @returns The user data pointer set, or %NULL
*/
steal_qdata(quark: GLib.Quark): any | null;
/**
* Reverts the effect of a previous call to
* g_object_freeze_notify(). The freeze count is decreased on `object`
* and when it reaches zero, queued "notify" signals are emitted.
*
* Duplicate notifications for each property are squashed so that at most one
* #GObject::notify signal is emitted for each property, in the reverse order
* in which they have been queued.
*
* It is an error to call this function when the freeze count is zero.
*/
thaw_notify(): void;
/**
* Decreases the reference count of `object`. When its reference count
* drops to 0, the object is finalized (i.e. its memory is freed).
*
* If the pointer to the #GObject may be reused in future (for example, if it is
* an instance variable of another object), it is recommended to clear the
* pointer to %NULL rather than retain a dangling pointer to a potentially
* invalid #GObject instance. Use g_clear_object() for this.
*/
unref(): void;
/**
* This function essentially limits the life time of the `closure` to
* the life time of the object. That is, when the object is finalized,
* the `closure` is invalidated by calling g_closure_invalidate() on
* it, in order to prevent invocations of the closure with a finalized
* (nonexisting) object. Also, g_object_ref() and g_object_unref() are
* added as marshal guards to the `closure,` to ensure that an extra
* reference count is held on `object` during invocation of the
* `closure`. Usually, this function will be called on closures that
* use this `object` as closure data.
* @param closure #GClosure to watch
*/
watch_closure(closure: GObject.Closure): void;
/**
* the `constructed` function is called by g_object_new() as the
* final step of the object creation process. At the point of the call, all
* construction properties have been set on the object. The purpose of this
* call is to allow for object initialisation steps that can only be performed
* after construction properties have been set. `constructed` implementors
* should chain up to the `constructed` call of their parent class to allow it
* to complete its initialisation.
*/
vfunc_constructed(): void;
/**
* emits property change notification for a bunch
* of properties. Overriding `dispatch_properties_changed` should be rarely
* needed.
* @param n_pspecs
* @param pspecs
*/
vfunc_dispatch_properties_changed(n_pspecs: number, pspecs: GObject.ParamSpec): void;
/**
* the `dispose` function is supposed to drop all references to other
* objects, but keep the instance otherwise intact, so that client method
* invocations still work. It may be run multiple times (due to reference
* loops). Before returning, `dispose` should chain up to the `dispose` method
* of the parent class.
*/
vfunc_dispose(): void;
/**
* instance finalization function, should finish the finalization of
* the instance begun in `dispose` and chain up to the `finalize` method of the
* parent class.
*/
vfunc_finalize(): void;
/**
* the generic getter for all properties of this type. Should be
* overridden for every type with properties.
* @param property_id
* @param value
* @param pspec
*/
vfunc_get_property(property_id: number, value: GObject.Value | any, pspec: GObject.ParamSpec): void;
/**
* Emits a "notify" signal for the property `property_name` on `object`.
*
* When possible, eg. when signaling a property change from within the class
* that registered the property, you should use g_object_notify_by_pspec()
* instead.
*
* Note that emission of the notify signal may be blocked with
* g_object_freeze_notify(). In this case, the signal emissions are queued
* and will be emitted (in reverse order) when g_object_thaw_notify() is
* called.
* @param pspec
*/
vfunc_notify(pspec: GObject.ParamSpec): void;
/**
* the generic setter for all properties of this type. Should be
* overridden for every type with properties. If implementations of
* `set_property` don't emit property change notification explicitly, this will
* be done implicitly by the type system. However, if the notify signal is
* emitted explicitly, the type system will not emit it a second time.
* @param property_id
* @param value
* @param pspec
*/
vfunc_set_property(property_id: number, value: GObject.Value | any, pspec: GObject.ParamSpec): void;
/**
* Disconnects a handler from an instance so it will not be called during any future or currently ongoing emissions of the signal it has been connected to.
* @param id Handler ID of the handler to be disconnected
*/
disconnect(id: number): void;
/**
* Sets multiple properties of an object at once. The properties argument should be a dictionary mapping property names to values.
* @param properties Object containing the properties to set
*/
set(properties: { [key: string]: any }): void;
/**
* Blocks a handler of an instance so it will not be called during any signal emissions
* @param id Handler ID of the handler to be blocked
*/
block_signal_handler(id: number): void;
/**
* Unblocks a handler so it will be called again during any signal emissions
* @param id Handler ID of the handler to be unblocked
*/
unblock_signal_handler(id: number): void;
/**
* Stops a signal's emission by the given signal name. This will prevent the default handler and any subsequent signal handlers from being invoked.
* @param detailedName Name of the signal to stop emission of
*/
stop_emission_by_name(detailedName: string): void;
}
namespace CertificateExtensionExtendedKeyUsage {
// Constructor properties interface
interface ConstructorProps extends CertificateExtension.ConstructorProps {}
}
/**
* A certificate extension that can be used to restrict an extended set of
* usages of a given certificate.
*
* Similar to [class`Gcr`.CertificateExtensionKeyUsage], this extension defined
* an additional set of purposes for which this certificate may be used.
*/
class CertificateExtensionExtendedKeyUsage extends CertificateExtension {
static $gtype: GObject.GType<CertificateExtensionExtendedKeyUsage>;
// Constructors
constructor(properties?: Partial<CertificateExtensionExtendedKeyUsage.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Methods
/**
* Returns a user-friendly list of description of the key usages.
* @returns The descriptions.
*/
get_descriptions(): string[];
/**
* Returns the list of OIDs of the extended key usages.
* @returns The OIDs.
*/
get_oids(): string[];
}
namespace CertificateExtensionKeyUsage {
// Constructor properties interface
interface ConstructorProps extends CertificateExtension.ConstructorProps {}
}
/**
* A certificate extension that can be used to restrict the usages of a given
* certificate.
*
* See also [class`Gcr`.CertificateExtensionExtendedKeyUsage] for an additional
* set of usages.
*/
class CertificateExtensionKeyUsage extends CertificateExtension {
static $gtype: GObject.GType<CertificateExtensionKeyUsage>;
// Constructors
constructor(properties?: Partial<CertificateExtensionKeyUsage.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Methods
/**
* Returns a user-friendly list of description of the key usages.
* @returns The descriptions.
*/
get_descriptions(): string[];
/**
* Returns the bit string describing the usages.
*/
get_usages(): number;
}
namespace CertificateExtensionList {
// Constructor properties interface
interface ConstructorProps<A extends GObject.Object = GObject.Object>
extends GObject.Object.ConstructorProps,
Gio.ListModel.ConstructorProps {
n_items: number;
nItems: number;
}
}
/**
* A wrapper type for a list of [class`CertificateExtension]`s.
*/
class CertificateExtensionList<A extends GObject.Object = GObject.Object>
extends GObject.Object
implements Gio.ListModel<A>
{
static $gtype: GObject.GType<CertificateExtensionList>;
// Properties
get n_items(): number;
get nItems(): number;
// Constructors
constructor(properties?: Partial<CertificateExtensionList.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Methods
/**
* Looks for an extension with the given OID.
* @param oid The OID of the certificate extension
* @returns The certificate extension with the given OID, or %NULL if not found.
*/
find_by_oid(oid: string): CertificateExtension | null;
/**
* Returns the extension at the given position.
*
* It is illegal to call this function with an invalid position.
* @param position The position of the extension in the list
* @returns The certificate extension with the given OID
*/
get_extension(position: number): CertificateExtension;
// Inherited methods
/**
* Gets the type of the items in `list`.
*
* All items returned from g_list_model_get_item() are of the type
* returned by this function, or a subtype, or if the type is an
* interface, they are an implementation of that interface.
*
* The item type of a #GListModel can not change during the life of the
* model.
* @returns the #GType of the items contained in @list.
*/
get_item_type(): GObject.GType;
/**
* Gets the number of items in `list`.
*
* Depending on the model implementation, calling this function may be
* less efficient than iterating the list with increasing values for
* `position` until g_list_model_get_item() returns %NULL.
* @returns the number of items in @list.
*/
get_n_items(): number;
/**
* Get the item at `position`.
*
* If `position` is greater than the number of items in `list,` %NULL is
* returned.
*
* %NULL is never returned for an index that is smaller than the length
* of the list.
*
* This function is meant to be used by language bindings in place
* of g_list_model_get_item().
*
* See also: g_list_model_get_n_items()
* @param position the position of the item to fetch
* @returns the object at @position.
*/
get_item(position: number): A | null;
/**
* Emits the #GListModel::items-changed signal on `list`.
*
* This function should only be called by classes implementing
* #GListModel. It has to be called after the internal representation
* of `list` has been updated, because handlers connected to this signal
* might query the new state of the list.
*
* Implementations must only make changes to the model (as visible to
* its consumer) in places that will not cause problems for that
* consumer. For models that are driven directly by a write API (such
* as #GListStore), changes can be reported in response to uses of that
* API. For models that represent remote data, changes should only be
* made from a fresh mainloop dispatch. It is particularly not
* permitted to make changes in response to a call to the #GListModel
* consumer API.
*
* Stated another way: in general, it is assumed that code making a
* series of accesses to the model via the API, without returning to the
* mainloop, and without calling other code, will continue to view the
* same contents of the model.
* @param position the position at which @list changed
* @param removed the number of items removed
* @param added the number of items added
*/
items_changed(position: number, removed: number, added: number): void;
/**
* Get the item at `position`. If `position` is greater than the number of
* items in `list,` %NULL is returned.
*
* %NULL is never returned for an index that is smaller than the length
* of the list. See g_list_model_get_n_items().
*
* The same #GObject instance may not appear more than once in a #GListModel.
* @param position the position of the item to fetch
*/
vfunc_get_item(position: number): A | null;
/**
* Gets the type of the items in `list`.
*
* All items returned from g_list_model_get_item() are of the type
* returned by this function, or a subtype, or if the type is an
* interface, they are an implementation of that interface.
*
* The item type of a #GListModel can not change during the life of the
* model.
*/
vfunc_get_item_type(): GObject.GType;
/**
* Gets the number of items in `list`.
*
* Depending on the model implementation, calling this function may be
* less efficient than iterating the list with increasing values for
* `position` until g_list_model_get_item() returns %NULL.
*/
vfunc_get_n_items(): number;
/**
* Creates a binding between `source_property` on `source` and `target_property`
* on `target`.
*
* Whenever the `source_property` is changed the `target_property` is
* updated using the same value. For instance:
*
*
* ```c
* g_object_bind_property (action, "active", widget, "sensitive", 0);
* ```
*
*
* Will result in the "sensitive" property of the widget #GObject instance to be
* updated with the same value of the "active" property of the action #GObject
* instance.
*
* If `flags` contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
* if `target_property` on `target` changes then the `source_property` on `source`
* will be updated as well.
*
* The binding will automatically be removed when either the `source` or the
* `target` instances are finalized. To remove the binding without affecting the
* `source` and the `target` you can just call g_object_unref() on the returned
* #GBinding instance.
*
* Removing the binding by calling g_object_unref() on it must only be done if
* the binding, `source` and `target` are only used from a single thread and it
* is clear that both `source` and `target` outlive the binding. Especially it
* is not safe to rely on this if the binding, `source` or `target` can be
* finalized from different threads. Keep another reference to the binding and
* use g_binding_unbind() instead to be on the safe side.
*
* A #GObject can have multiple bindings.
* @param source_property the property on @source to bind
* @param target the target #GObject
* @param target_property the property on @target to bind
* @param flags flags to pass to #GBinding
* @returns the #GBinding instance representing the binding between the two #GObject instances. The binding is released whenever the #GBinding reference count reaches zero.
*/
bind_property(
source_property: string,
target: GObject.Object,
target_property: string,
flags: GObject.BindingFlags | null,
): GObject.Binding;
/**
* Complete version of g_object_bind_property().
*
* Creates a binding between `source_property` on `source` and `target_property`
* on `target,` allowing you to set the transformation functions to be used by
* the binding.
*
* If `flags` contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
* if `target_property` on `target` changes then the `source_property` on `source`
* will be updated as well. The `transform_from` function is only used in case
* of bidirectional bindings, otherwise it will be ignored
*
* The binding will automatically be removed when either the `source` or the
* `target` instances are finalized. This will release the reference that is
* being held on the #GBinding instance; if you want to hold on to the
* #GBinding instance, you will need to hold a reference to it.
*
* To remove the binding, call g_binding_unbind().
*
* A #GObject can have multiple bindings.
*
* The same `user_data` parameter will be used for both `transform_to`
* and `transform_from` transformation functions; the `notify` function will
* be called once, when the binding is removed. If you need different data
* for each transformation function, please use
* g_object_bind_property_with_closures() instead.
* @param source_property the property on @source to bind
* @param target the target #GObject
* @param target_property the property on @target to bind
* @param flags flags to pass to #GBinding
* @param transform_to the transformation function from the @source to the @target, or %NULL to use the default
* @param transform_from the transformation function from the @target to the @source, or %NULL to use the default
* @param notify a function to call when disposing the binding, to free resources used by the transformation functions, or %NULL if not required
* @returns the #GBinding instance representing the binding between the two #GObject instances. The binding is released whenever the #GBinding reference count reaches zero.
*/
bind_property_full(
source_property: string,
target: GObject.Object,
target_property: string,
flags: GObject.BindingFlags | null,
transform_to?: GObject.BindingTransformFunc | null,
transform_from?: GObject.BindingTransformFunc | null,
notify?: GLib.DestroyNotify | null,
): GObject.Binding;
// Conflicted with GObject.Object.bind_property_full
bind_property_full(...args: never[]): any;
/**
* This function is intended for #GObject implementations to re-enforce
* a [floating][floating-ref] object reference. Doing this is seldom
* required: all #GInitiallyUnowneds are created with a floating reference
* which usually just needs to be sunken by calling g_object_ref_sink().
*/
force_floating(): void;
/**
* Increases the freeze count on `object`. If the freeze count is
* non-zero, the emission of "notify" signals on `object` is
* stopped. The signals are queued until the freeze count is decreased
* to zero. Duplicate notifications are squashed so that at most one
* #GObject::notify signal is emitted for each property modified while the
* object is frozen.
*
* This is necessary for accessors that modify multiple properties to prevent
* premature notification while the object is still being modified.
*/
freeze_notify(): void;
/**
* Gets a named field from the objects table of associations (see g_object_set_data()).
* @param key name of the key for that association
* @returns the data if found, or %NULL if no such data exists.
*/
get_data(key: string): any | null;
/**
* Gets a property of an object.
*
* The value can be:
* - an empty GObject.Value initialized by G_VALUE_INIT, which will be automatically initialized with the expected type of the property (since GLib 2.60)
* - a GObject.Value initialized with the expected type of the property
* - a GObject.Value initialized with a type to which the expected type of the property can be transformed
*
* In general, a copy is made of the property contents and the caller is responsible for freeing the memory by calling GObject.Value.unset.
*
* Note that GObject.Object.get_property is really intended for language bindings, GObject.Object.get is much more convenient for C programming.
* @param property_name The name of the property to get
* @param value Return location for the property value. Can be an empty GObject.Value initialized by G_VALUE_INIT (auto-initialized with expected type since GLib 2.60), a GObject.Value initialized with the expected property type, or a GObject.Value initialized with a transformable type
*/
get_property(property_name: string, value: GObject.Value | any): any;
/**
* This function gets back user data pointers stored via
* g_object_set_qdata().
* @param quark A #GQuark, naming the user data pointer
* @returns The user data pointer set, or %NULL
*/
get_qdata(quark: GLib.Quark): any | null;
/**
* Gets `n_properties` properties for an `object`.
* Obtained properties will be set to `values`. All properties must be valid.
* Warnings will be emitted and undefined behaviour may result if invalid
* properties are passed in.
* @param names the names of each property to get
* @param values the values of each property to get
*/
getv(names: string[], values: (GObject.Value | any)[]): void;
/**
* Checks whether `object` has a [floating][floating-ref] reference.
* @returns %TRUE if @object has a floating reference
*/
is_floating(): boolean;
/**
* Emits a "notify" signal for the property `property_name` on `object`.
*
* When possible, eg. when signaling a property change from within the class
* that registered the property, you should use g_object_notify_by_pspec()
* instead.
*
* Note that emission of the notify signal may be blocked with
* g_object_freeze_notify(). In this case, the signal emissions are queued
* and will be emitted (in reverse order) when g_object_thaw_notify() is
* called.
* @param property_name the name of a property installed on the class of @object.
*/
notify(property_name: string): void;
/**
* Emits a "notify" signal for the property specified by `pspec` on `object`.
*
* This function omits the property name lookup, hence it is faster than
* g_object_notify().
*
* One way to avoid using g_object_notify() from within the
* class that registered the properties, and using g_object_notify_by_pspec()
* instead, is to store the GParamSpec used with
* g_object_class_install_property() inside a static array, e.g.:
*
*
* ```c
* typedef enum
* {
* PROP_FOO = 1,
* PROP_LAST
* } MyObjectProperty;
*
* static GParamSpec *properties[PROP_LAST];
*
* static void
* my_object_class_init (MyObjectClass *klass)
* {
* properties[PROP_FOO] = g_param_spec_int ("foo", NULL, NULL,
* 0, 100,
* 50,
* G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
* g_object_class_install_property (gobject_class,
* PROP_FOO,
* properties[PROP_FOO]);
* }
* ```
*
*
* and then notify a change on the "foo" property with:
*
*
* ```c
* g_object_notify_by_pspec (self, properties[PROP_FOO]);
* ```
*
* @param pspec the #GParamSpec of a property installed on the class of @object.
*/
notify_by_pspec(pspec: GObject.ParamSpec): void;
/**
* Increases the reference count of `object`.
*
* Since GLib 2.56, if `GLIB_VERSION_MAX_ALLOWED` is 2.56 or greater, the type
* of `object` will be propagated to the return type (using the GCC typeof()
* extension), so any casting the caller needs to do on the return type must be
* explicit.
* @returns the same @object
*/
ref(): GObject.Object;
/**
* Increase the reference count of `object,` and possibly remove the
* [floating][floating-ref] reference, if `object` has a floating reference.
*
* In other words, if the object is floating, then this call "assumes
* ownership" of the floating reference, converting it to a normal
* reference by clearing the floating flag while leaving the reference
* count unchanged. If the object is not floating, then this call
* adds a new normal reference increasing the reference count by one.
*
* Since GLib 2.56, the type of `object` will be propagated to the return type
* under the same conditions as for g_object_ref().
* @returns @object
*/
ref_sink(): GObject.Object;
/**
* Releases all references to other objects. This can be used to break
* reference cycles.
*
* This function should only be called from object system implementations.
*/
run_dispose(): void;
/**
* Each object carries around a table of associations from
* strings to pointers. This function lets you set an association.
*
* If the object already had an association with that name,
* the old association will be destroyed.
*
* Internally, the `key` is converted to a #GQuark using g_quark_from_string().
* This means a copy of `key` is kept permanently (even after `object` has been
* finalized) — so it is recommended to only use a small, bounded set of values
* for `key` in your program, to avoid the #GQuark storage growing unbounded.
* @param key name of the key
* @param data data to associate with that key
*/
set_data(key: string, data?: any | null): void;
/**
* Sets a property on an object.
* @param property_name The name of the property to set
* @param value The value to set the property to
*/
set_property(property_name: string, value: GObject.Value | any): void;
/**
* Remove a specified datum from the object's data associations,
* without invoking the association's destroy handler.
* @param key name of the key
* @returns the data if found, or %NULL if no such data exists.
*/
steal_data(key: string): any | null;
/**
* This function gets back user data pointers stored via
* g_object_set_qdata() and removes the `data` from object
* without invoking its destroy() function (if any was
* set).
* Usually, calling this function is only required to update
* user data pointers with a destroy notifier, for example:
*
* ```c
* void
* object_add_to_user_list (GObject *object,
* const gchar *new_string)
* {
* // the quark, naming the object data
* GQuark quark_string_list = g_quark_from_static_string ("my-string-list");
* // retrieve the old string list
* GList *list = g_object_steal_qdata (object, quark_string_list);
*
* // prepend new string
* list = g_list_prepend (list, g_strdup (new_string));
* // this changed 'list', so we need to set it again
* g_object_set_qdata_full (object, quark_string_list, list, free_string_list);
* }
* static void
* free_string_list (gpointer data)
* {
* GList *node, *list = data;
*
* for (node = list; node; node = node->next)
* g_free (node->data);
* g_list_free (list);
* }
* ```
*
* Using g_object_get_qdata() in the above example, instead of
* g_object_steal_qdata() would have left the destroy function set,
* and thus the partial string list would have been freed upon
* g_object_set_qdata_full().
* @param quark A #GQuark, naming the user data pointer
* @returns The user data pointer set, or %NULL
*/
steal_qdata(quark: GLib.Quark): any | null;
/**
* Reverts the effect of a previous call to
* g_object_freeze_notify(). The freeze count is decreased on `object`
* and when it reaches zero, queued "notify" signals are emitted.
*
* Duplicate notifications for each property are squashed so that at most one
* #GObject::notify signal is emitted for each property, in the reverse order
* in which they have been queued.
*
* It is an error to call this function when the freeze count is zero.
*/
thaw_notify(): void;
/**
* Decreases the reference count of `object`. When its reference count
* drops to 0, the object is finalized (i.e. its memory is freed).
*
* If the pointer to the #GObject may be reused in future (for example, if it is
* an instance variable of another object), it is recommended to clear the
* pointer to %NULL rather than retain a dangling pointer to a potentially
* invalid #GObject instance. Use g_clear_object() for this.
*/
unref(): void;
/**
* This function essentially limits the life time of the `closure` to
* the life time of the object. That is, when the object is finalized,
* the `closure` is invalidated by calling g_closure_invalidate() on
* it, in order to prevent invocations of the closure with a finalized
* (nonexisting) object. Also, g_object_ref() and g_object_unref() are
* added as marshal guards to the `closure,` to ensure that an extra
* reference count is held on `object` during invocation of the
* `closure`. Usually, this function will be called on closures that
* use this `object` as closure data.
* @param closure #GClosure to watch
*/
watch_closure(closure: GObject.Closure): void;
/**
* the `constructed` function is called by g_object_new() as the
* final step of the object creation process. At the point of the call, all
* construction properties have been set on the object. The purpose of this
* call is to allow for object initialisation steps that can only be performed
* after construction properties have been set. `constructed` implementors
* should chain up to the `constructed` call of their parent class to allow it
* to complete its initialisation.
*/
vfunc_constructed(): void;
/**
* emits property change notification for a bunch
* of properties. Overriding `dispatch_properties_changed` should be rarely
* needed.
* @param n_pspecs
* @param pspecs
*/
vfunc_dispatch_properties_changed(n_pspecs: number, pspecs: GObject.ParamSpec): void;
/**
* the `dispose` function is supposed to drop all references to other
* objects, but keep the instance otherwise intact, so that client method
* invocations still work. It may be run multiple times (due to reference
* loops). Before returning, `dispose` should chain up to the `dispose` method
* of the parent class.
*/
vfunc_dispose(): void;
/**
* instance finalization function, should finish the finalization of
* the instance begun in `dispose` and chain up to the `finalize` method of the
* parent class.
*/
vfunc_finalize(): void;
/**
* the generic getter for all properties of this type. Should be
* overridden for every type with properties.
* @param property_id
* @param value
* @param pspec
*/
vfunc_get_property(property_id: number, value: GObject.Value | any, pspec: GObject.ParamSpec): void;
/**
* Emits a "notify" signal for the property `property_name` on `object`.
*
* When possible, eg. when signaling a property change from within the class
* that registered the property, you should use g_object_notify_by_pspec()
* instead.
*
* Note that emission of the notify signal may be blocked with
* g_object_freeze_notify(). In this case, the signal emissions are queued
* and will be emitted (in reverse order) when g_object_thaw_notify() is
* called.
* @param pspec
*/
vfunc_notify(pspec: GObject.ParamSpec): void;
/**
* the generic setter for all properties of this type. Should be
* overridden for every type with properties. If implementations of
* `set_property` don't emit property change notification explicitly, this will
* be done implicitly by the type system. However, if the notify signal is
* emitted explicitly, the type system will not emit it a second time.
* @param property_id
* @param value
* @param pspec
*/
vfunc_set_property(property_id: number, value: GObject.Value | any, pspec: GObject.ParamSpec): void;
/**
* Disconnects a handler from an instance so it will not be called during any future or currently ongoing emissions of the signal it has been connected to.
* @param id Handler ID of the handler to be disconnected
*/
disconnect(id: number): void;
/**
* Sets multiple properties of an object at once. The properties argument should be a dictionary mapping property names to values.
* @param properties Object containing the properties to set
*/
set(properties: { [key: string]: any }): void;
/**
* Blocks a handler of an instance so it will not be called during any signal emissions
* @param id Handler ID of the handler to be blocked
*/
block_signal_handler(id: number): void;
/**
* Unblocks a handler so it will be called again during any signal emissions
* @param id Handler ID of the handler to be unblocked
*/
unblock_signal_handler(id: number): void;
/**
* Stops a signal's emission by the given signal name. This will prevent the default handler and any subsequent signal handlers from being invoked.
* @param detailedName Name of the signal to stop emission of
*/
stop_emission_by_name(detailedName: string): void;
}
namespace CertificateExtensionSubjectAltName {
// Constructor properties interface
interface ConstructorProps<A extends GObject.Object = GObject.Object>
extends CertificateExtension.ConstructorProps,
Gio.ListModel.ConstructorProps {}
}
/**
* A certificate extension describing the Subject Alternative Name (SAN).
*
* This kind of extension is used for example to specify multiple domains for
* the same certificate.
*
* The object exposes the different names with the [iface`Gio`.ListModel] API.
*/
class CertificateExtensionSubjectAltName<A extends GObject.Object = GObject.Object>
extends CertificateExtension
implements Gio.ListModel<A>
{
static $gtype: GObject.GType<CertificateExtensionSubjectAltName>;
// Constructors
constructor(properties?: Partial<CertificateExtensionSubjectAltName.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Methods
/**
* Returns the name at the given position.
* @param position The position of the name
* @returns The name at position @position
*/
get_name(position: number): GeneralName;
// Inherited methods
/**
* Gets the type of the items in `list`.
*
* All items returned from g_list_model_get_item() are of the type
* returned by this function, or a subtype, or if the type is an
* interface, they are an implementation of that interface.
*
* The item type of a #GListModel can not change during the life of the
* model.
* @returns the #GType of the items contained in @list.
*/
get_item_type(): GObject.GType;
/**
* Gets the number of items in `list`.
*
* Depending on the model implementation, calling this function may be
* less efficient than iterating the list with increasing values for
* `position` until g_list_model_get_item() returns %NULL.
* @returns the number of items in @list.
*/
get_n_items(): number;
/**
* Get the item at `position`.
*
* If `position` is greater than the number of items in `list,` %NULL is
* returned.
*
* %NULL is never returned for an index that is smaller than the length
* of the list.
*
* This function is meant to be used by language bindings in place
* of g_list_model_get_item().
*
* See also: g_list_model_get_n_items()
* @param position the position of the item to fetch
* @returns the object at @position.
*/
get_item(position: number): A | null;
/**
* Emits the #GListModel::items-changed signal on `list`.
*
* This function should only be called by classes implementing
* #GListModel. It has to be called after the internal representation
* of `list` has been updated, because handlers connected to this signal
* might query the new state of the list.
*
* Implementations must only make changes to the model (as visible to
* its consumer) in places that will not cause problems for that
* consumer. For models that are driven directly by a write API (such
* as #GListStore), changes can be reported in response to uses of that
* API. For models that represent remote data, changes should only be
* made from a fresh mainloop dispatch. It is particularly not
* permitted to make changes in response to a call to the #GListModel
* consumer API.
*
* Stated another way: in general, it is assumed that code making a
* series of accesses to the model via the API, without returning to the
* mainloop, and without calling other code, will continue to view the
* same contents of the model.
* @param position the position at which @list changed
* @param removed the number of items removed
* @param added the number of items added
*/
items_changed(position: number, removed: number, added: number): void;
/**
* Get the item at `position`. If `position` is greater than the number of
* items in `list,` %NULL is returned.
*
* %NULL is never returned for an index that is smaller than the length
* of the list. See g_list_model_get_n_items().
*
* The same #GObject instance may not appear more than once in a #GListModel.
* @param position the position of the item to fetch
*/
vfunc_get_item(position: number): A | null;
/**
* Gets the type of the items in `list`.
*
* All items returned from g_list_model_get_item() are of the type
* returned by this function, or a subtype, or if the type is an
* interface, they are an implementation of that interface.
*
* The item type of a #GListModel can not change during the life of the
* model.
*/
vfunc_get_item_type(): GObject.GType;
/**
* Gets the number of items in `list`.
*
* Depending on the model implementation, calling this function may be
* less efficient than iterating the list with increasing values for
* `position` until g_list_model_get_item() returns %NULL.
*/
vfunc_get_n_items(): number;
/**
* Creates a binding between `source_property` on `source` and `target_property`
* on `target`.
*
* Whenever the `source_property` is changed the `target_property` is
* updated using the same value. For instance:
*
*
* ```c
* g_object_bind_property (action, "active", widget, "sensitive", 0);
* ```
*
*
* Will result in the "sensitive" property of the widget #GObject instance to be
* updated with the same value of the "active" property of the action #GObject
* instance.
*
* If `flags` contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
* if `target_property` on `target` changes then the `source_property` on `source`
* will be updated as well.
*
* The binding will automatically be removed when either the `source` or the
* `target` instances are finalized. To remove the binding without affecting the
* `source` and the `target` you can just call g_object_unref() on the returned
* #GBinding instance.
*
* Removing the binding by calling g_object_unref() on it must only be done if
* the binding, `source` and `target` are only used from a single thread and it
* is clear that both `source` and `target` outlive the binding. Especially it
* is not safe to rely on this if the binding, `source` or `target` can be
* finalized from different threads. Keep another reference to the binding and
* use g_binding_unbind() instead to be on the safe side.
*
* A #GObject can have multiple bindings.
* @param source_property the property on @source to bind
* @param target the target #GObject
* @param target_property the property on @target to bind
* @param flags flags to pass to #GBinding
* @returns the #GBinding instance representing the binding between the two #GObject instances. The binding is released whenever the #GBinding reference count reaches zero.
*/
bind_property(
source_property: string,
target: GObject.Object,
target_property: string,
flags: GObject.BindingFlags | null,
): GObject.Binding;
/**
* Complete version of g_object_bind_property().
*
* Creates a binding between `source_property` on `source` and `target_property`
* on `target,` allowing you to set the transformation functions to be used by
* the binding.
*
* If `flags` contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
* if `target_property` on `target` changes then the `source_property` on `source`
* will be updated as well. The `transform_from` function is only used in case
* of bidirectional bindings, otherwise it will be ignored
*
* The binding will automatically be removed when either the `source` or the
* `target` instances are finalized. This will release the reference that is
* being held on the #GBinding instance; if you want to hold on to the
* #GBinding instance, you will need to hold a reference to it.
*
* To remove the binding, call g_binding_unbind().
*
* A #GObject can have multiple bindings.
*
* The same `user_data` parameter will be used for both `transform_to`
* and `transform_from` transformation functions; the `notify` function will
* be called once, when the binding is removed. If you need different data
* for each transformation function, please use
* g_object_bind_property_with_closures() instead.
* @param source_property the property on @source to bind
* @param target the target #GObject
* @param target_property the property on @target to bind
* @param flags flags to pass to #GBinding
* @param transform_to the transformation function from the @source to the @target, or %NULL to use the default
* @param transform_from the transformation function from the @target to the @source, or %NULL to use the default
* @param notify a function to call when disposing the binding, to free resources used by the transformation functions, or %NULL if not required
* @returns the #GBinding instance representing the binding between the two #GObject instances. The binding is released whenever the #GBinding reference count reaches zero.
*/
bind_property_full(
source_property: string,
target: GObject.Object,
target_property: string,
flags: GObject.BindingFlags | null,
transform_to?: GObject.BindingTransformFunc | null,
transform_from?: GObject.BindingTransformFunc | null,
notify?: GLib.DestroyNotify | null,
): GObject.Binding;
// Conflicted with GObject.Object.bind_property_full
bind_property_full(...args: never[]): any;
/**
* This function is intended for #GObject implementations to re-enforce
* a [floating][floating-ref] object reference. Doing this is seldom
* required: all #GInitiallyUnowneds are created with a floating reference
* which usually just needs to be sunken by calling g_object_ref_sink().
*/
force_floating(): void;
/**
* Increases the freeze count on `object`. If the freeze count is
* non-zero, the emission of "notify" signals on `object` is
* stopped. The signals are queued until the freeze count is decreased
* to zero. Duplicate notifications are squashed so that at most one
* #GObject::notify signal is emitted for each property modified while the
* object is frozen.
*
* This is necessary for accessors that modify multiple properties to prevent
* premature notification while the object is still being modified.
*/
freeze_notify(): void;
/**
* Gets a named field from the objects table of associations (see g_object_set_data()).
* @param key name of the key for that association
* @returns the data if found, or %NULL if no such data exists.
*/
get_data(key: string): any | null;
/**
* Gets a property of an object.
*
* The value can be:
* - an empty GObject.Value initialized by G_VALUE_INIT, which will be automatically initialized with the expected type of the property (since GLib 2.60)
* - a GObject.Value initialized with the expected type of the property
* - a GObject.Value initialized with a type to which the expected type of the property can be transformed
*
* In general, a copy is made of the property contents and the caller is responsible for freeing the memory by calling GObject.Value.unset.
*
* Note that GObject.Object.get_property is really intended for language bindings, GObject.Object.get is much more convenient for C programming.
* @param property_name The name of the property to get
* @param value Return location for the property value. Can be an empty GObject.Value initialized by G_VALUE_INIT (auto-initialized with expected type since GLib 2.60), a GObject.Value initialized with the expected property type, or a GObject.Value initialized with a transformable type
*/
get_property(property_name: string, value: GObject.Value | any): any;
/**
* This function gets back user data pointers stored via
* g_object_set_qdata().
* @param quark A #GQuark, naming the user data pointer
* @returns The user data pointer set, or %NULL
*/
get_qdata(quark: GLib.Quark): any | null;
/**
* Gets `n_properties` properties for an `object`.
* Obtained properties will be set to `values`. All properties must be valid.
* Warnings will be emitted and undefined behaviour may result if invalid
* properties are passed in.
* @param names the names of each property to get
* @param values the values of each property to get
*/
getv(names: string[], values: (GObject.Value | any)[]): void;
/**
* Checks whether `object` has a [floating][floating-ref] reference.
* @returns %TRUE if @object has a floating reference
*/
is_floating(): boolean;
/**
* Emits a "notify" signal for the property `property_name` on `object`.
*
* When possible, eg. when signaling a property change from within the class
* that registered the property, you should use g_object_notify_by_pspec()
* instead.
*
* Note that emission of the notify signal may be blocked with
* g_object_freeze_notify(). In this case, the signal emissions are queued
* and will be emitted (in reverse order) when g_object_thaw_notify() is
* called.
* @param property_name the name of a property installed on the class of @object.
*/
notify(property_name: string): void;
/**
* Emits a "notify" signal for the property specified by `pspec` on `object`.
*
* This function omits the property name lookup, hence it is faster than
* g_object_notify().
*
* One way to avoid using g_object_notify() from within the
* class that registered the properties, and using g_object_notify_by_pspec()
* instead, is to store the GParamSpec used with
* g_object_class_install_property() inside a static array, e.g.:
*
*
* ```c
* typedef enum
* {
* PROP_FOO = 1,
* PROP_LAST
* } MyObjectProperty;
*
* static GParamSpec *properties[PROP_LAST];
*
* static void
* my_object_class_init (MyObjectClass *klass)
* {
* properties[PROP_FOO] = g_param_spec_int ("foo", NULL, NULL,
* 0, 100,
* 50,
* G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
* g_object_class_install_property (gobject_class,
* PROP_FOO,
* properties[PROP_FOO]);
* }
* ```
*
*
* and then notify a change on the "foo" property with:
*
*
* ```c
* g_object_notify_by_pspec (self, properties[PROP_FOO]);
* ```
*
* @param pspec the #GParamSpec of a property installed on the class of @object.
*/
notify_by_pspec(pspec: GObject.ParamSpec): void;
/**
* Increases the reference count of `object`.
*
* Since GLib 2.56, if `GLIB_VERSION_MAX_ALLOWED` is 2.56 or greater, the type
* of `object` will be propagated to the return type (using the GCC typeof()
* extension), so any casting the caller needs to do on the return type must be
* explicit.
* @returns the same @object
*/
ref(): GObject.Object;
/**
* Increase the reference count of `object,` and possibly remove the
* [floating][floating-ref] reference, if `object` has a floating reference.
*
* In other words, if the object is floating, then this call "assumes
* ownership" of the floating reference, converting it to a normal
* reference by clearing the floating flag while leaving the reference
* count unchanged. If the object is not floating, then this call
* adds a new normal reference increasing the reference count by one.
*
* Since GLib 2.56, the type of `object` will be propagated to the return type
* under the same conditions as for g_object_ref().
* @returns @object
*/
ref_sink(): GObject.Object;
/**
* Releases all references to other objects. This can be used to break
* reference cycles.
*
* This function should only be called from object system implementations.
*/
run_dispose(): void;
/**
* Each object carries around a table of associations from
* strings to pointers. This function lets you set an association.
*
* If the object already had an association with that name,
* the old association will be destroyed.
*
* Internally, the `key` is converted to a #GQuark using g_quark_from_string().
* This means a copy of `key` is kept permanently (even after `object` has been
* finalized) — so it is recommended to only use a small, bounded set of values
* for `key` in your program, to avoid the #GQuark storage growing unbounded.
* @param key name of the key
* @param data data to associate with that key
*/
set_data(key: string, data?: any | null): void;
/**
* Sets a property on an object.
* @param property_name The name of the property to set
* @param value The value to set the property to
*/
set_property(property_name: string, value: GObject.Value | any): void;
/**
* Remove a specified datum from the object's data associations,
* without invoking the association's destroy handler.
* @param key name of the key
* @returns the data if found, or %NULL if no such data exists.
*/
steal_data(key: string): any | null;
/**
* This function gets back user data pointers stored via
* g_object_set_qdata() and removes the `data` from object
* without invoking its destroy() function (if any was
* set).
* Usually, calling this function is only required to update
* user data pointers with a destroy notifier, for example:
*
* ```c
* void
* object_add_to_user_list (GObject *object,
* const gchar *new_string)
* {
* // the quark, naming the object data
* GQuark quark_string_list = g_quark_from_static_string ("my-string-list");
* // retrieve the old string list
* GList *list = g_object_steal_qdata (object, quark_string_list);
*
* // prepend new string
* list = g_list_prepend (list, g_strdup (new_string));
* // this changed 'list', so we need to set it again
* g_object_set_qdata_full (object, quark_string_list, list, free_string_list);
* }
* static void
* free_string_list (gpointer data)
* {
* GList *node, *list = data;
*
* for (node = list; node; node = node->next)
* g_free (node->data);
* g_list_free (list);
* }
* ```
*
* Using g_object_get_qdata() in the above example, instead of
* g_object_steal_qdata() would have left the destroy function set,
* and thus the partial string list would have been freed upon
* g_object_set_qdata_full().
* @param quark A #GQuark, naming the user data pointer
* @returns The user data pointer set, or %NULL
*/
steal_qdata(quark: GLib.Quark): any | null;
/**
* Reverts the effect of a previous call to
* g_object_freeze_notify(). The freeze count is decreased on `object`
* and when it reaches zero, queued "notify" signals are emitted.
*
* Duplicate notifications for each property are squashed so that at most one
* #GObject::notify signal is emitted for each property, in the reverse order
* in which they have been queued.
*
* It is an error to call this function when the freeze count is zero.
*/
thaw_notify(): void;
/**
* Decreases the reference count of `object`. When its reference count
* drops to 0, the object is finalized (i.e. its memory is freed).
*
* If the pointer to the #GObject may be reused in future (for example, if it is
* an instance variable of another object), it is recommended to clear the
* pointer to %NULL rather than retain a dangling pointer to a potentially
* invalid #GObject instance. Use g_clear_object() for this.
*/
unref(): void;
/**
* This function essentially limits the life time of the `closure` to
* the life time of the object. That is, when the object is finalized,
* the `closure` is invalidated by calling g_closure_invalidate() on
* it, in order to prevent invocations of the closure with a finalized
* (nonexisting) object. Also, g_object_ref() and g_object_unref() are
* added as marshal guards to the `closure,` to ensure that an extra
* reference count is held on `object` during invocation of the
* `closure`. Usually, this function will be called on closures that
* use this `object` as closure data.
* @param closure #GClosure to watch
*/
watch_closure(closure: GObject.Closure): void;
/**
* the `constructed` function is called by g_object_new() as the
* final step of the object creation process. At the point of the call, all
* construction properties have been set on the object. The purpose of this
* call is to allow for object initialisation steps that can only be performed
* after construction properties have been set. `constructed` implementors
* should chain up to the `constructed` call of their parent class to allow it
* to complete its initialisation.
*/
vfunc_constructed(): void;
/**
* emits property change notification for a bunch
* of properties. Overriding `dispatch_properties_changed` should be rarely
* needed.
* @param n_pspecs
* @param pspecs
*/
vfunc_dispatch_properties_changed(n_pspecs: number, pspecs: GObject.ParamSpec): void;
/**
* the `dispose` function is supposed to drop all references to other
* objects, but keep the instance otherwise intact, so that client method
* invocations still work. It may be run multiple times (due to reference
* loops). Before returning, `dispose` should chain up to the `dispose` method
* of the parent class.
*/
vfunc_dispose(): void;
/**
* instance finalization function, should finish the finalization of
* the instance begun in `dispose` and chain up to the `finalize` method of the
* parent class.
*/
vfunc_finalize(): void;
/**
* the generic getter for all properties of this type. Should be
* overridden for every type with properties.
* @param property_id
* @param value
* @param pspec
*/
vfunc_get_property(property_id: number, value: GObject.Value | any, pspec: GObject.ParamSpec): void;
/**
* Emits a "notify" signal for the property `property_name` on `object`.
*
* When possible, eg. when signaling a property change from within the class
* that registered the property, you should use g_object_notify_by_pspec()
* instead.
*
* Note that emission of the notify signal may be blocked with
* g_object_freeze_notify(). In this case, the signal emissions are queued
* and will be emitted (in reverse order) when g_object_thaw_notify() is
* called.
* @param pspec
*/
vfunc_notify(pspec: GObject.ParamSpec): void;
/**
* the generic setter for all properties of this type. Should be
* overridden for every type with properties. If implementations of
* `set_property` don't emit property change notification explicitly, this will
* be done implicitly by the type system. However, if the notify signal is
* emitted explicitly, the type system will not emit it a second time.
* @param property_id
* @param value
* @param pspec
*/
vfunc_set_property(property_id: number, value: GObject.Value | any, pspec: GObject.ParamSpec): void;
/**
* Disconnects a handler from an instance so it will not be called during any future or currently ongoing emissions of the signal it has been connected to.
* @param id Handler ID of the handler to be disconnected
*/
disconnect(id: number): void;
/**
* Sets multiple properties of an object at once. The properties argument should be a dictionary mapping property names to values.
* @param properties Object containing the properties to set
*/
set(properties: { [key: string]: any }): void;
/**
* Blocks a handler of an instance so it will not be called during any signal emissions
* @param id Handler ID of the handler to be blocked
*/
block_signal_handler(id: number): void;
/**
* Unblocks a handler so it will be called again during any signal emissions
* @param id Handler ID of the handler to be unblocked
*/
unblock_signal_handler(id: number): void;
/**
* Stops a signal's emission by the given signal name. This will prevent the default handler and any subsequent signal handlers from being invoked.
* @param detailedName Name of the signal to stop emission of
*/
stop_emission_by_name(detailedName: string): void;
}
namespace CertificateExtensionSubjectKeyIdentifier {
// Constructor properties interface
interface ConstructorProps extends CertificateExtension.ConstructorProps {}
}
/**
* A certificate extension that contains the subject key identifier (SKI).
*/
class CertificateExtensionSubjectKeyIdentifier extends CertificateExtension {
static $gtype: GObject.GType<CertificateExtensionSubjectKeyIdentifier>;
// Constructors
constructor(
properties?: Partial<CertificateExtensionSubjectKeyIdentifier.ConstructorProps>,
...args: any[]
);
_init(...args: any[]): void;
// Methods
/**
* Returns the raw bytes containing the subject key identifier.
* @returns The subject key identifier.
*/
get_key_id(): GLib.Bytes;
}
namespace CertificateField {
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
label: string;
section: CertificateSection;
value: GObject.Value;
}
}
class CertificateField extends GObject.Object {
static $gtype: GObject.GType<CertificateField>;
// Properties
get label(): string;
get section(): CertificateSection;
get value(): GObject.Value;
// Constructors
constructor(properties?: Partial<CertificateField.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Methods
/**
* Get the display label of the field.
* @returns the display label of the field
*/
get_label(): string;
/**
* Get the parent #GcrCertificateSection.
* @returns the parent #GcrCertificateSection
*/
get_section(): CertificateSection;
/**
* Get the value of the field.
*
* The `value` will have been initialized to the `GType` the value should be
* provided in.
* @returns %TRUE if the value was set successfully.
*/
get_value(): [boolean, unknown];
/**
* Get the type associated with the value.
* @returns The `GType` of the value
*/
get_value_type(): GObject.GType;
}
namespace CertificatePolicy {
// Constructor properties interface
interface ConstructorProps<A extends GObject.Object = GObject.Object>
extends GObject.Object.ConstructorProps,
Gio.ListModel.ConstructorProps {}
}
/**
* An object describing a certificate policy.
*
* These policies are listed as part of a
* [class`Gcr`.CertificateExtensionCertificatePolicies] object.
*
* A policy can optionally also include qualifiers, which are exposed through
* the [iface`Gio`.ListModel] API.
*/
class CertificatePolicy<A extends GObject.Object = GObject.Object>
extends GObject.Object
implements Gio.ListModel<A>
{
static $gtype: GObject.GType<CertificatePolicy>;
// Constructors
constructor(properties?: Partial<CertificatePolicy.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Methods
/**
* Returns a user-friendly name of this certificate policy, if known.
* @returns A name describing the policy OID
*/
get_name(): string;
/**
* Returns the OID string that describes this certificate policy.
* @returns The policy OID
*/
get_oid(): string;
// Inherited methods
/**
* Gets the type of the items in `list`.
*
* All items returned from g_list_model_get_item() are of the type
* returned by this function, or a subtype, or if the type is an
* interface, they are an implementation of that interface.
*
* The item type of a #GListModel can not change during the life of the
* model.
* @returns the #GType of the items contained in @list.
*/
get_item_type(): GObject.GType;
/**
* Gets the number of items in `list`.
*
* Depending on the model implementation, calling this function may be
* less efficient than iterating the list with increasing values for
* `position` until g_list_model_get_item() returns %NULL.
* @returns the number of items in @list.
*/
get_n_items(): number;
/**
* Get the item at `position`.
*
* If `position` is greater than the number of items in `list,` %NULL is
* returned.
*
* %NULL is never returned for an index that is smaller than the length
* of the list.
*
* This function is meant to be used by language bindings in place
* of g_list_model_get_item().
*
* See also: g_list_model_get_n_items()
* @param position the position of the item to fetch
* @returns the object at @position.
*/
get_item(position: number): A | null;
/**
* Emits the #GListModel::items-changed signal on `list`.
*
* This function should only be called by classes implementing
* #GListModel. It has to be called after the internal representation
* of `list` has been updated, because handlers connected to this signal
* might query the new state of the list.
*
* Implementations must only make changes to the model (as visible to
* its consumer) in places that will not cause problems for that
* consumer. For models that are driven directly by a write API (such
* as #GListStore), changes can be reported in response to uses of that
* API. For models that represent remote data, changes should only be
* made from a fresh mainloop dispatch. It is particularly not
* permitted to make changes in response to a call to the #GListModel
* consumer API.
*
* Stated another way: in general, it is assumed that code making a
* series of accesses to the model via the API, without returning to the
* mainloop, and without calling other code, will continue to view the
* same contents of the model.
* @param position the position at which @list changed
* @param removed the number of items removed
* @param added the number of items added
*/
items_changed(position: number, removed: number, added: number): void;
/**
* Get the item at `position`. If `position` is greater than the number of
* items in `list,` %NULL is returned.
*
* %NULL is never returned for an index that is smaller than the length
* of the list. See g_list_model_get_n_items().
*
* The same #GObject instance may not appear more than once in a #GListModel.
* @param position the position of the item to fetch
*/
vfunc_get_item(position: number): A | null;
/**
* Gets the type of the items in `list`.
*
* All items returned from g_list_model_get_item() are of the type
* returned by this function, or a subtype, or if the type is an
* interface, they are an implementation of that interface.
*
* The item type of a #GListModel can not change during the life of the
* model.
*/
vfunc_get_item_type(): GObject.GType;
/**
* Gets the number of items in `list`.
*
* Depending on the model implementation, calling this function may be
* less efficient than iterating the list with increasing values for
* `position` until g_list_model_get_item() returns %NULL.
*/
vfunc_get_n_items(): number;
/**
* Creates a binding between `source_property` on `source` and `target_property`
* on `target`.
*
* Whenever the `source_property` is changed the `target_property` is
* updated using the same value. For instance:
*
*
* ```c
* g_object_bind_property (action, "active", widget, "sensitive", 0);
* ```
*
*
* Will result in the "sensitive" property of the widget #GObject instance to be
* updated with the same value of the "active" property of the action #GObject
* instance.
*
* If `flags` contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
* if `target_property` on `target` changes then the `source_property` on `source`
* will be updated as well.
*
* The binding will automatically be removed when either the `source` or the
* `target` instances are finalized. To remove the binding without affecting the
* `source` and the `target` you can just call g_object_unref() on the returned
* #GBinding instance.
*
* Removing the binding by calling g_object_unref() on it must only be done if
* the binding, `source` and `target` are only used from a single thread and it
* is clear that both `source` and `target` outlive the binding. Especially it
* is not safe to rely on this if the binding, `source` or `target` can be
* finalized from different threads. Keep another reference to the binding and
* use g_binding_unbind() instead to be on the safe side.
*
* A #GObject can have multiple bindings.
* @param source_property the property on @source to bind
* @param target the target #GObject
* @param target_property the property on @target to bind
* @param flags flags to pass to #GBinding
* @returns the #GBinding instance representing the binding between the two #GObject instances. The binding is released whenever the #GBinding reference count reaches zero.
*/
bind_property(
source_property: string,
target: GObject.Object,
target_property: string,
flags: GObject.BindingFlags | null,
): GObject.Binding;
/**
* Complete version of g_object_bind_property().
*
* Creates a binding between `source_property` on `source` and `target_property`
* on `target,` allowing you to set the transformation functions to be used by
* the binding.
*
* If `flags` contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
* if `target_property` on `target` changes then the `source_property` on `source`
* will be updated as well. The `transform_from` function is only used in case
* of bidirectional bindings, otherwise it will be ignored
*
* The binding will automatically be removed when either the `source` or the
* `target` instances are finalized. This will release the reference that is
* being held on the #GBinding instance; if you want to hold on to the
* #GBinding instance, you will need to hold a reference to it.
*
* To remove the binding, call g_binding_unbind().
*
* A #GObject can have multiple bindings.
*
* The same `user_data` parameter will be used for both `transform_to`
* and `transform_from` transformation functions; the `notify` function will
* be called once, when the binding is removed. If you need different data
* for each transformation function, please use
* g_object_bind_property_with_closures() instead.
* @param source_property the property on @source to bind
* @param target the target #GObject
* @param target_property the property on @target to bind
* @param flags flags to pass to #GBinding
* @param transform_to the transformation function from the @source to the @target, or %NULL to use the default
* @param transform_from the transformation function from the @target to the @source, or %NULL to use the default
* @param notify a function to call when disposing the binding, to free resources used by the transformation functions, or %NULL if not required
* @returns the #GBinding instance representing the binding between the two #GObject instances. The binding is released whenever the #GBinding reference count reaches zero.
*/
bind_property_full(
source_property: string,
target: GObject.Object,
target_property: string,
flags: GObject.BindingFlags | null,
transform_to?: GObject.BindingTransformFunc | null,
transform_from?: GObject.BindingTransformFunc | null,
notify?: GLib.DestroyNotify | null,
): GObject.Binding;
// Conflicted with GObject.Object.bind_property_full
bind_property_full(...args: never[]): any;
/**
* This function is intended for #GObject implementations to re-enforce
* a [floating][floating-ref] object reference. Doing this is seldom
* required: all #GInitiallyUnowneds are created with a floating reference
* which usually just needs to be sunken by calling g_object_ref_sink().
*/
force_floating(): void;
/**
* Increases the freeze count on `object`. If the freeze count is
* non-zero, the emission of "notify" signals on `object` is
* stopped. The signals are queued until the freeze count is decreased
* to zero. Duplicate notifications are squashed so that at most one
* #GObject::notify signal is emitted for each property modified while the
* object is frozen.
*
* This is necessary for accessors that modify multiple properties to prevent
* premature notification while the object is still being modified.
*/
freeze_notify(): void;
/**
* Gets a named field from the objects table of associations (see g_object_set_data()).
* @param key name of the key for that association
* @returns the data if found, or %NULL if no such data exists.
*/
get_data(key: string): any | null;
/**
* Gets a property of an object.
*
* The value can be:
* - an empty GObject.Value initialized by G_VALUE_INIT, which will be automatically initialized with the expected type of the property (since GLib 2.60)
* - a GObject.Value initialized with the expected type of the property
* - a GObject.Value initialized with a type to which the expected type of the property can be transformed
*
* In general, a copy is made of the property contents and the caller is responsible for freeing the memory by calling GObject.Value.unset.
*
* Note that GObject.Object.get_property is really intended for language bindings, GObject.Object.get is much more convenient for C programming.
* @param property_name The name of the property to get
* @param value Return location for the property value. Can be an empty GObject.Value initialized by G_VALUE_INIT (auto-initialized with expected type since GLib 2.60), a GObject.Value initialized with the expected property type, or a GObject.Value initialized with a transformable type
*/
get_property(property_name: string, value: GObject.Value | any): any;
/**
* This function gets back user data pointers stored via
* g_object_set_qdata().
* @param quark A #GQuark, naming the user data pointer
* @returns The user data pointer set, or %NULL
*/
get_qdata(quark: GLib.Quark): any | null;
/**
* Gets `n_properties` properties for an `object`.
* Obtained properties will be set to `values`. All properties must be valid.
* Warnings will be emitted and undefined behaviour may result if invalid
* properties are passed in.
* @param names the names of each property to get
* @param values the values of each property to get
*/
getv(names: string[], values: (GObject.Value | any)[]): void;
/**
* Checks whether `object` has a [floating][floating-ref] reference.
* @returns %TRUE if @object has a floating reference
*/
is_floating(): boolean;
/**
* Emits a "notify" signal for the property `property_name` on `object`.
*
* When possible, eg. when signaling a property change from within the class
* that registered the property, you should use g_object_notify_by_pspec()
* instead.
*
* Note that emission of the notify signal may be blocked with
* g_object_freeze_notify(). In this case, the signal emissions are queued
* and will be emitted (in reverse order) when g_object_thaw_notify() is
* called.
* @param property_name the name of a property installed on the class of @object.
*/
notify(property_name: string): void;
/**
* Emits a "notify" signal for the property specified by `pspec` on `object`.
*
* This function omits the property name lookup, hence it is faster than
* g_object_notify().
*
* One way to avoid using g_object_notify() from within the
* class that registered the properties, and using g_object_notify_by_pspec()
* instead, is to store the GParamSpec used with
* g_object_class_install_property() inside a static array, e.g.:
*
*
* ```c
* typedef enum
* {
* PROP_FOO = 1,
* PROP_LAST
* } MyObjectProperty;
*
* static GParamSpec *properties[PROP_LAST];
*
* static void
* my_object_class_init (MyObjectClass *klass)
* {
* properties[PROP_FOO] = g_param_spec_int ("foo", NULL, NULL,
* 0, 100,
* 50,
* G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
* g_object_class_install_property (gobject_class,
* PROP_FOO,
* properties[PROP_FOO]);
* }
* ```
*
*
* and then notify a change on the "foo" property with:
*
*
* ```c
* g_object_notify_by_pspec (self, properties[PROP_FOO]);
* ```
*
* @param pspec the #GParamSpec of a property installed on the class of @object.
*/
notify_by_pspec(pspec: GObject.ParamSpec): void;
/**
* Increases the reference count of `object`.
*
* Since GLib 2.56, if `GLIB_VERSION_MAX_ALLOWED` is 2.56 or greater, the type
* of `object` will be propagated to the return type (using the GCC typeof()
* extension), so any casting the caller needs to do on the return type must be
* explicit.
* @returns the same @object
*/
ref(): GObject.Object;
/**
* Increase the reference count of `object,` and possibly remove the
* [floating][floating-ref] reference, if `object` has a floating reference.
*
* In other words, if the object is floating, then this call "assumes
* ownership" of the floating reference, converting it to a normal
* reference by clearing the floating flag while leaving the reference
* count unchanged. If the object is not floating, then this call
* adds a new normal reference increasing the reference count by one.
*
* Since GLib 2.56, the type of `object` will be propagated to the return type
* under the same conditions as for g_object_ref().
* @returns @object
*/
ref_sink(): GObject.Object;
/**
* Releases all references to other objects. This can be used to break
* reference cycles.
*
* This function should only be called from object system implementations.
*/
run_dispose(): void;
/**
* Each object carries around a table of associations from
* strings to pointers. This function lets you set an association.
*
* If the object already had an association with that name,
* the old association will be destroyed.
*
* Internally, the `key` is converted to a #GQuark using g_quark_from_string().
* This means a copy of `key` is kept permanently (even after `object` has been
* finalized) — so it is recommended to only use a small, bounded set of values
* for `key` in your program, to avoid the #GQuark storage growing unbounded.
* @param key name of the key
* @param data data to associate with that key
*/
set_data(key: string, data?: any | null): void;
/**
* Sets a property on an object.
* @param property_name The name of the property to set
* @param value The value to set the property to
*/
set_property(property_name: string, value: GObject.Value | any): void;
/**
* Remove a specified datum from the object's data associations,
* without invoking the association's destroy handler.
* @param key name of the key
* @returns the data if found, or %NULL if no such data exists.
*/
steal_data(key: string): any | null;
/**
* This function gets back user data pointers stored via
* g_object_set_qdata() and removes the `data` from object
* without invoking its destroy() function (if any was
* set).
* Usually, calling this function is only required to update
* user data pointers with a destroy notifier, for example:
*
* ```c
* void
* object_add_to_user_list (GObject *object,
* const gchar *new_string)
* {
* // the quark, naming the object data
* GQuark quark_string_list = g_quark_from_static_string ("my-string-list");
* // retrieve the old string list
* GList *list = g_object_steal_qdata (object, quark_string_list);
*
* // prepend new string
* list = g_list_prepend (list, g_strdup (new_string));
* // this changed 'list', so we need to set it again
* g_object_set_qdata_full (object, quark_string_list, list, free_string_list);
* }
* static void
* free_string_list (gpointer data)
* {
* GList *node, *list = data;
*
* for (node = list; node; node = node->next)
* g_free (node->data);
* g_list_free (list);
* }
* ```
*
* Using g_object_get_qdata() in the above example, instead of
* g_object_steal_qdata() would have left the destroy function set,
* and thus the partial string list would have been freed upon
* g_object_set_qdata_full().
* @param quark A #GQuark, naming the user data pointer
* @returns The user data pointer set, or %NULL
*/
steal_qdata(quark: GLib.Quark): any | null;
/**
* Reverts the effect of a previous call to
* g_object_freeze_notify(). The freeze count is decreased on `object`
* and when it reaches zero, queued "notify" signals are emitted.
*
* Duplicate notifications for each property are squashed so that at most one
* #GObject::notify signal is emitted for each property, in the reverse order
* in which they have been queued.
*
* It is an error to call this function when the freeze count is zero.
*/
thaw_notify(): void;
/**
* Decreases the reference count of `object`. When its reference count
* drops to 0, the object is finalized (i.e. its memory is freed).
*
* If the pointer to the #GObject may be reused in future (for example, if it is
* an instance variable of another object), it is recommended to clear the
* pointer to %NULL rather than retain a dangling pointer to a potentially
* invalid #GObject instance. Use g_clear_object() for this.
*/
unref(): void;
/**
* This function essentially limits the life time of the `closure` to
* the life time of the object. That is, when the object is finalized,
* the `closure` is invalidated by calling g_closure_invalidate() on
* it, in order to prevent invocations of the closure with a finalized
* (nonexisting) object. Also, g_object_ref() and g_object_unref() are
* added as marshal guards to the `closure,` to ensure that an extra
* reference count is held on `object` during invocation of the
* `closure`. Usually, this function will be called on closures that
* use this `object` as closure data.
* @param closure #GClosure to watch
*/
watch_closure(closure: GObject.Closure): void;
/**
* the `constructed` function is called by g_object_new() as the
* final step of the object creation process. At the point of the call, all
* construction properties have been set on the object. The purpose of this
* call is to allow for object initialisation steps that can only be performed
* after construction properties have been set. `constructed` implementors
* should chain up to the `constructed` call of their parent class to allow it
* to complete its initialisation.
*/
vfunc_constructed(): void;
/**
* emits property change notification for a bunch
* of properties. Overriding `dispatch_properties_changed` should be rarely
* needed.
* @param n_pspecs
* @param pspecs
*/
vfunc_dispatch_properties_changed(n_pspecs: number, pspecs: GObject.ParamSpec): void;
/**
* the `dispose` function is supposed to drop all references to other
* objects, but keep the instance otherwise intact, so that client method
* invocations still work. It may be run multiple times (due to reference
* loops). Before returning, `dispose` should chain up to the `dispose` method
* of the parent class.
*/
vfunc_dispose(): void;
/**
* instance finalization function, should finish the finalization of
* the instance begun in `dispose` and chain up to the `finalize` method of the
* parent class.
*/
vfunc_finalize(): void;
/**
* the generic getter for all properties of this type. Should be
* overridden for every type with properties.
* @param property_id
* @param value
* @param pspec
*/
vfunc_get_property(property_id: number, value: GObject.Value | any, pspec: GObject.ParamSpec): void;
/**
* Emits a "notify" signal for the property `property_name` on `object`.
*
* When possible, eg. when signaling a property change from within the class
* that registered the property, you should use g_object_notify_by_pspec()
* instead.
*
* Note that emission of the notify signal may be blocked with
* g_object_freeze_notify(). In this case, the signal emissions are queued
* and will be emitted (in reverse order) when g_object_thaw_notify() is
* called.
* @param pspec
*/
vfunc_notify(pspec: GObject.ParamSpec): void;
/**
* the generic setter for all properties of this type. Should be
* overridden for every type with properties. If implementations of
* `set_property` don't emit property change notification explicitly, this will
* be done implicitly by the type system. However, if the notify signal is
* emitted explicitly, the type system will not emit it a second time.
* @param property_id
* @param value
* @param pspec
*/
vfunc_set_property(property_id: number, value: GObject.Value | any, pspec: GObject.ParamSpec): void;
/**
* Disconnects a handler from an instance so it will not be called during any future or currently ongoing emissions of the signal it has been connected to.
* @param id Handler ID of the handler to be disconnected
*/
disconnect(id: number): void;
/**
* Sets multiple properties of an object at once. The properties argument should be a dictionary mapping property names to values.
* @param properties Object containing the properties to set
*/
set(properties: { [key: string]: any }): void;
/**
* Blocks a handler of an instance so it will not be called during any signal emissions
* @param id Handler ID of the handler to be blocked
*/
block_signal_handler(id: number): void;
/**
* Unblocks a handler so it will be called again during any signal emissions
* @param id Handler ID of the handler to be unblocked
*/
unblock_signal_handler(id: number): void;
/**
* Stops a signal's emission by the given signal name. This will prevent the default handler and any subsequent signal handlers from being invoked.
* @param detailedName Name of the signal to stop emission of
*/
stop_emission_by_name(detailedName: string): void;
}
namespace CertificatePolicyQualifier {
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {}
}
/**
* An object describing a certificate policy qualifier.
*
* These policies are (optionally) part of a [class`Gcr`.CertificatePolicy]
* object.
*/
class CertificatePolicyQualifier extends GObject.Object {
static $gtype: GObject.GType<CertificatePolicyQualifier>;
// Constructors
constructor(properties?: Partial<CertificatePolicyQualifier.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Methods
/**
* Returns a user-friendly name of this certificate policy qualifier, if known.
* @returns A name describing the policy qualifier OID
*/
get_name(): string;
/**
* Returns the OID string that describes this certificate policy qualifier.
* @returns The policy qualifier OID
*/
get_oid(): string;
}
namespace CertificateRequest {
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
private_key: Gck.Object;
privateKey: Gck.Object;
}
}
/**
* An object that allows creation of certificate requests. A certificate
* request is sent to a certificate authority to request an X.509 certificate.
*
* Use [func`CertificateRequest`.prepare] to create a blank certificate
* request for a given private key. Set the common name on the certificate
* request with [method`CertificateRequest`.set_cn], and then sign the request
* with [method`CertificateRequest`.complete_async].
*/
class CertificateRequest extends GObject.Object {
static $gtype: GObject.GType<CertificateRequest>;
// Properties
/**
* The private key that this certificate request is for.
*/
get private_key(): Gck.Object;
/**
* The private key that this certificate request is for.
*/
get privateKey(): Gck.Object;
// Constructors
constructor(properties?: Partial<CertificateRequest.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Static methods
/**
* Check whether [class`CertificateRequest]` is capable of creating a request
* for the given `private_key`.
* @param private_key a private key
* @param cancellable cancellation object
*/
static capable(private_key: Gck.Object, cancellable?: Gio.Cancellable | null): boolean;
/**
* Asynchronously check whether [class`CertificateRequest]` is capable of
* creating a request for the given `private_key`.
* @param private_key a private key
* @param cancellable cancellation object
* @param callback will be called when the operation completes
*/
static capable_async(
private_key: Gck.Object,
cancellable?: Gio.Cancellable | null,
callback?: Gio.AsyncReadyCallback<CertificateRequest> | null,
): void;
/**
* Get the result for asynchronously check whether [class`CertificateRequest]` is
* capable of creating a request for the given `private_key`.
* @param result asynchronous result
*/
static capable_finish(result: Gio.AsyncResult): boolean;
/**
* Create a new certificate request, in the given format for the private key.
* @param format the format for the certificate request
* @param private_key the private key the the certificate is being requested for
*/
static prepare(format: CertificateRequestFormat, private_key: Gck.Object): CertificateRequest;
// Methods
/**
* Complete and sign a certificate request, so that it can be encoded
* and sent to a certificate authority.
*
* This call may block as it signs the request using the private key.
* @param cancellable a cancellation object
* @returns whether certificate request was successfully completed or not
*/
complete(cancellable?: Gio.Cancellable | null): boolean;
/**
* Asynchronously complete and sign a certificate request, so that it can
* be encoded and sent to a certificate authority.
*
* This call will return immediately and complete later.
* @param cancellable a cancellation object
*/
complete_async(cancellable?: Gio.Cancellable | null): Promise<boolean>;
/**
* Asynchronously complete and sign a certificate request, so that it can
* be encoded and sent to a certificate authority.
*
* This call will return immediately and complete later.
* @param cancellable a cancellation object
* @param callback called when the operation completes
*/
complete_async(cancellable: Gio.Cancellable | null, callback: Gio.AsyncReadyCallback<this> | null): void;
/**
* Asynchronously complete and sign a certificate request, so that it can
* be encoded and sent to a certificate authority.
*
* This call will return immediately and complete later.
* @param cancellable a cancellation object
* @param callback called when the operation completes
*/
complete_async(
cancellable?: Gio.Cancellable | null,
callback?: Gio.AsyncReadyCallback<this> | null,
): Promise<boolean> | void;
/**
* Finish an asynchronous operation to complete and sign a certificate
* request.
* @param result result of the asynchronous operation
* @returns whether certificate request was successfully completed or not
*/
complete_finish(result: Gio.AsyncResult): boolean;
/**
* Encode the certificate request. It must have been completed with
* [method`CertificateRequest`.complete] or
* [method`CertificateRequest`.complete_async].
*
* If `textual` is %FALSE, the output is a DER encoded certificate request.
*
* If `textual` is %TRUE, the output is encoded as text. For PKCS#10 requests
* this is done using the OpenSSL style PEM encoding.
* @param textual whether to encode output as text
* @returns the encoded certificate request
*/
encode(textual: boolean): Uint8Array;
/**
* Get the format of this certificate request.
* @returns the format
*/
get_format(): CertificateRequestFormat;
/**
* Get the private key this certificate request is for.
* @returns the private key,
*/
get_private_key(): Gck.Object;
/**
* Set the common name encoded in the certificate request.
* @param cn common name to set on the request
*/
set_cn(cn: string): void;
}
namespace CertificateSection {
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
fields: Gio.ListModel;
label: string;
}
}
class CertificateSection extends GObject.Object {
static $gtype: GObject.GType<CertificateSection>;
// Properties
get fields(): Gio.ListModel;
get label(): string;
// Constructors
constructor(properties?: Partial<CertificateSection.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Methods
/**
* Get the list of all the fields in this section.
* @returns a #GListModel of #GcrCertificateField
*/
get_fields(): Gio.ListModel;
/**
* Get the flags.
* @returns the `GcrCertificateSectionFlags`
*/
get_flags(): CertificateSectionFlags;
/**
* Get the displayable label of the section.
* @returns the displayable label of the section
*/
get_label(): string;
}
namespace DistributionPoint {
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {}
}
/**
* An object describing a CRL distribution point.
*
* A certificate user can use such a Certifiate Revocation List (CLR)
* distribution point to check if the certificate has been revoked.
*
* These distribution poitns are for example listed as part of a
* [class`Gcr`.CertificateExtensionCrlDistributionPoints] object.
*/
class DistributionPoint extends GObject.Object {
static $gtype: GObject.GType<DistributionPoint>;
// Constructors
constructor(properties?: Partial<DistributionPoint.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Methods
/**
* Returns the full name of the CRL distribution point, if set.
* @returns The full name of the distribution point
*/
get_full_name(): GeneralNames | null;
/**
* Returns a part of the relative name of `self,` if set.
*
* Note that the relative name might not be set, nor the specific part.
*
* Examples of a `part` might be the 'OU' (organizational unit) or the 'CN'
* (common name). Only the value of that part of the RDN is returned.
* @param part a RDN type string or OID.
* @returns The relative name part if set, or NULL
*/
get_relative_name_part(part: string): string | null;
}
namespace GeneralName {
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {}
}
/**
* An object describing a name as part of the Subject Alternative Name (SAN)
* extension.
*/
class GeneralName extends GObject.Object {
static $gtype: GObject.GType<GeneralName>;
// Constructors
constructor(properties?: Partial<GeneralName.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Methods
/**
* Returns a user-friendly string describing the name.
*/
get_description(): string;
/**
* Returns the actual value of the name.
*/
get_value(): string;
/**
* Returns the raw bytes describing the value of the name.
*/
get_value_raw(): GLib.Bytes;
}
namespace GeneralNames {
// Constructor properties interface
interface ConstructorProps<A extends GObject.Object = GObject.Object>
extends GObject.Object.ConstructorProps,
Gio.ListModel.ConstructorProps {}
}
/**
* A list of [class`Gcr`.GeneralName]s.
*/
class GeneralNames<A extends GObject.Object = GObject.Object>
extends GObject.Object
implements Gio.ListModel<A>
{
static $gtype: GObject.GType<GeneralNames>;
// Constructors
constructor(properties?: Partial<GeneralNames.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Methods
/**
* Returns the name at the given position.
*
* It is illegal to call this function with a position larger than the number
* of elements in this list.
* @param position The position in the list
* @returns The name at the given position
*/
get_name(position: number): GeneralName;
// Inherited methods
/**
* Gets the type of the items in `list`.
*
* All items returned from g_list_model_get_item() are of the type
* returned by this function, or a subtype, or if the type is an
* interface, they are an implementation of that interface.
*
* The item type of a #GListModel can not change during the life of the
* model.
* @returns the #GType of the items contained in @list.
*/
get_item_type(): GObject.GType;
/**
* Gets the number of items in `list`.
*
* Depending on the model implementation, calling this function may be
* less efficient than iterating the list with increasing values for
* `position` until g_list_model_get_item() returns %NULL.
* @returns the number of items in @list.
*/
get_n_items(): number;
/**
* Get the item at `position`.
*
* If `position` is greater than the number of items in `list,` %NULL is
* returned.
*
* %NULL is never returned for an index that is smaller than the length
* of the list.
*
* This function is meant to be used by language bindings in place
* of g_list_model_get_item().
*
* See also: g_list_model_get_n_items()
* @param position the position of the item to fetch
* @returns the object at @position.
*/
get_item(position: number): A | null;
/**
* Emits the #GListModel::items-changed signal on `list`.
*
* This function should only be called by classes implementing
* #GListModel. It has to be called after the internal representation
* of `list` has been updated, because handlers connected to this signal
* might query the new state of the list.
*
* Implementations must only make changes to the model (as visible to
* its consumer) in places that will not cause problems for that
* consumer. For models that are driven directly by a write API (such
* as #GListStore), changes can be reported in response to uses of that
* API. For models that represent remote data, changes should only be
* made from a fresh mainloop dispatch. It is particularly not
* permitted to make changes in response to a call to the #GListModel
* consumer API.
*
* Stated another way: in general, it is assumed that code making a
* series of accesses to the model via the API, without returning to the
* mainloop, and without calling other code, will continue to view the
* same contents of the model.
* @param position the position at which @list changed
* @param removed the number of items removed
* @param added the number of items added
*/
items_changed(position: number, removed: number, added: number): void;
/**
* Get the item at `position`. If `position` is greater than the number of
* items in `list,` %NULL is returned.
*
* %NULL is never returned for an index that is smaller than the length
* of the list. See g_list_model_get_n_items().
*
* The same #GObject instance may not appear more than once in a #GListModel.
* @param position the position of the item to fetch
*/
vfunc_get_item(position: number): A | null;
/**
* Gets the type of the items in `list`.
*
* All items returned from g_list_model_get_item() are of the type
* returned by this function, or a subtype, or if the type is an
* interface, they are an implementation of that interface.
*
* The item type of a #GListModel can not change during the life of the
* model.
*/
vfunc_get_item_type(): GObject.GType;
/**
* Gets the number of items in `list`.
*
* Depending on the model implementation, calling this function may be
* less efficient than iterating the list with increasing values for
* `position` until g_list_model_get_item() returns %NULL.
*/
vfunc_get_n_items(): number;
/**
* Creates a binding between `source_property` on `source` and `target_property`
* on `target`.
*
* Whenever the `source_property` is changed the `target_property` is
* updated using the same value. For instance:
*
*
* ```c
* g_object_bind_property (action, "active", widget, "sensitive", 0);
* ```
*
*
* Will result in the "sensitive" property of the widget #GObject instance to be
* updated with the same value of the "active" property of the action #GObject
* instance.
*
* If `flags` contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
* if `target_property` on `target` changes then the `source_property` on `source`
* will be updated as well.
*
* The binding will automatically be removed when either the `source` or the
* `target` instances are finalized. To remove the binding without affecting the
* `source` and the `target` you can just call g_object_unref() on the returned
* #GBinding instance.
*
* Removing the binding by calling g_object_unref() on it must only be done if
* the binding, `source` and `target` are only used from a single thread and it
* is clear that both `source` and `target` outlive the binding. Especially it
* is not safe to rely on this if the binding, `source` or `target` can be
* finalized from different threads. Keep another reference to the binding and
* use g_binding_unbind() instead to be on the safe side.
*
* A #GObject can have multiple bindings.
* @param source_property the property on @source to bind
* @param target the target #GObject
* @param target_property the property on @target to bind
* @param flags flags to pass to #GBinding
* @returns the #GBinding instance representing the binding between the two #GObject instances. The binding is released whenever the #GBinding reference count reaches zero.
*/
bind_property(
source_property: string,
target: GObject.Object,
target_property: string,
flags: GObject.BindingFlags | null,
): GObject.Binding;
/**
* Complete version of g_object_bind_property().
*
* Creates a binding between `source_property` on `source` and `target_property`
* on `target,` allowing you to set the transformation functions to be used by
* the binding.
*
* If `flags` contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
* if `target_property` on `target` changes then the `source_property` on `source`
* will be updated as well. The `transform_from` function is only used in case
* of bidirectional bindings, otherwise it will be ignored
*
* The binding will automatically be removed when either the `source` or the
* `target` instances are finalized. This will release the reference that is
* being held on the #GBinding instance; if you want to hold on to the
* #GBinding instance, you will need to hold a reference to it.
*
* To remove the binding, call g_binding_unbind().
*
* A #GObject can have multiple bindings.
*
* The same `user_data` parameter will be used for both `transform_to`
* and `transform_from` transformation functions; the `notify` function will
* be called once, when the binding is removed. If you need different data
* for each transformation function, please use
* g_object_bind_property_with_closures() instead.
* @param source_property the property on @source to bind
* @param target the target #GObject
* @param target_property the property on @target to bind
* @param flags flags to pass to #GBinding
* @param transform_to the transformation function from the @source to the @target, or %NULL to use the default
* @param transform_from the transformation function from the @target to the @source, or %NULL to use the default
* @param notify a function to call when disposing the binding, to free resources used by the transformation functions, or %NULL if not required
* @returns the #GBinding instance representing the binding between the two #GObject instances. The binding is released whenever the #GBinding reference count reaches zero.
*/
bind_property_full(
source_property: string,
target: GObject.Object,
target_property: string,
flags: GObject.BindingFlags | null,
transform_to?: GObject.BindingTransformFunc | null,
transform_from?: GObject.BindingTransformFunc | null,
notify?: GLib.DestroyNotify | null,
): GObject.Binding;
// Conflicted with GObject.Object.bind_property_full
bind_property_full(...args: never[]): any;
/**
* This function is intended for #GObject implementations to re-enforce
* a [floating][floating-ref] object reference. Doing this is seldom
* required: all #GInitiallyUnowneds are created with a floating reference
* which usually just needs to be sunken by calling g_object_ref_sink().
*/
force_floating(): void;
/**
* Increases the freeze count on `object`. If the freeze count is
* non-zero, the emission of "notify" signals on `object` is
* stopped. The signals are queued until the freeze count is decreased
* to zero. Duplicate notifications are squashed so that at most one
* #GObject::notify signal is emitted for each property modified while the
* object is frozen.
*
* This is necessary for accessors that modify multiple properties to prevent
* premature notification while the object is still being modified.
*/
freeze_notify(): void;
/**
* Gets a named field from the objects table of associations (see g_object_set_data()).
* @param key name of the key for that association
* @returns the data if found, or %NULL if no such data exists.
*/
get_data(key: string): any | null;
/**
* Gets a property of an object.
*
* The value can be:
* - an empty GObject.Value initialized by G_VALUE_INIT, which will be automatically initialized with the expected type of the property (since GLib 2.60)
* - a GObject.Value initialized with the expected type of the property
* - a GObject.Value initialized with a type to which the expected type of the property can be transformed
*
* In general, a copy is made of the property contents and the caller is responsible for freeing the memory by calling GObject.Value.unset.
*
* Note that GObject.Object.get_property is really intended for language bindings, GObject.Object.get is much more convenient for C programming.
* @param property_name The name of the property to get
* @param value Return location for the property value. Can be an empty GObject.Value initialized by G_VALUE_INIT (auto-initialized with expected type since GLib 2.60), a GObject.Value initialized with the expected property type, or a GObject.Value initialized with a transformable type
*/
get_property(property_name: string, value: GObject.Value | any): any;
/**
* This function gets back user data pointers stored via
* g_object_set_qdata().
* @param quark A #GQuark, naming the user data pointer
* @returns The user data pointer set, or %NULL
*/
get_qdata(quark: GLib.Quark): any | null;
/**
* Gets `n_properties` properties for an `object`.
* Obtained properties will be set to `values`. All properties must be valid.
* Warnings will be emitted and undefined behaviour may result if invalid
* properties are passed in.
* @param names the names of each property to get
* @param values the values of each property to get
*/
getv(names: string[], values: (GObject.Value | any)[]): void;
/**
* Checks whether `object` has a [floating][floating-ref] reference.
* @returns %TRUE if @object has a floating reference
*/
is_floating(): boolean;
/**
* Emits a "notify" signal for the property `property_name` on `object`.
*
* When possible, eg. when signaling a property change from within the class
* that registered the property, you should use g_object_notify_by_pspec()
* instead.
*
* Note that emission of the notify signal may be blocked with
* g_object_freeze_notify(). In this case, the signal emissions are queued
* and will be emitted (in reverse order) when g_object_thaw_notify() is
* called.
* @param property_name the name of a property installed on the class of @object.
*/
notify(property_name: string): void;
/**
* Emits a "notify" signal for the property specified by `pspec` on `object`.
*
* This function omits the property name lookup, hence it is faster than
* g_object_notify().
*
* One way to avoid using g_object_notify() from within the
* class that registered the properties, and using g_object_notify_by_pspec()
* instead, is to store the GParamSpec used with
* g_object_class_install_property() inside a static array, e.g.:
*
*
* ```c
* typedef enum
* {
* PROP_FOO = 1,
* PROP_LAST
* } MyObjectProperty;
*
* static GParamSpec *properties[PROP_LAST];
*
* static void
* my_object_class_init (MyObjectClass *klass)
* {
* properties[PROP_FOO] = g_param_spec_int ("foo", NULL, NULL,
* 0, 100,
* 50,
* G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
* g_object_class_install_property (gobject_class,
* PROP_FOO,
* properties[PROP_FOO]);
* }
* ```
*
*
* and then notify a change on the "foo" property with:
*
*
* ```c
* g_object_notify_by_pspec (self, properties[PROP_FOO]);
* ```
*
* @param pspec the #GParamSpec of a property installed on the class of @object.
*/
notify_by_pspec(pspec: GObject.ParamSpec): void;
/**
* Increases the reference count of `object`.
*
* Since GLib 2.56, if `GLIB_VERSION_MAX_ALLOWED` is 2.56 or greater, the type
* of `object` will be propagated to the return type (using the GCC typeof()
* extension), so any casting the caller needs to do on the return type must be
* explicit.
* @returns the same @object
*/
ref(): GObject.Object;
/**
* Increase the reference count of `object,` and possibly remove the
* [floating][floating-ref] reference, if `object` has a floating reference.
*
* In other words, if the object is floating, then this call "assumes
* ownership" of the floating reference, converting it to a normal
* reference by clearing the floating flag while leaving the reference
* count unchanged. If the object is not floating, then this call
* adds a new normal reference increasing the reference count by one.
*
* Since GLib 2.56, the type of `object` will be propagated to the return type
* under the same conditions as for g_object_ref().
* @returns @object
*/
ref_sink(): GObject.Object;
/**
* Releases all references to other objects. This can be used to break
* reference cycles.
*
* This function should only be called from object system implementations.
*/
run_dispose(): void;
/**
* Each object carries around a table of associations from
* strings to pointers. This function lets you set an association.
*
* If the object already had an association with that name,
* the old association will be destroyed.
*
* Internally, the `key` is converted to a #GQuark using g_quark_from_string().
* This means a copy of `key` is kept permanently (even after `object` has been
* finalized) — so it is recommended to only use a small, bounded set of values
* for `key` in your program, to avoid the #GQuark storage growing unbounded.
* @param key name of the key
* @param data data to associate with that key
*/
set_data(key: string, data?: any | null): void;
/**
* Sets a property on an object.
* @param property_name The name of the property to set
* @param value The value to set the property to
*/
set_property(property_name: string, value: GObject.Value | any): void;
/**
* Remove a specified datum from the object's data associations,
* without invoking the association's destroy handler.
* @param key name of the key
* @returns the data if found, or %NULL if no such data exists.
*/
steal_data(key: string): any | null;
/**
* This function gets back user data pointers stored via
* g_object_set_qdata() and removes the `data` from object
* without invoking its destroy() function (if any was
* set).
* Usually, calling this function is only required to update
* user data pointers with a destroy notifier, for example:
*
* ```c
* void
* object_add_to_user_list (GObject *object,
* const gchar *new_string)
* {
* // the quark, naming the object data
* GQuark quark_string_list = g_quark_from_static_string ("my-string-list");
* // retrieve the old string list
* GList *list = g_object_steal_qdata (object, quark_string_list);
*
* // prepend new string
* list = g_list_prepend (list, g_strdup (new_string));
* // this changed 'list', so we need to set it again
* g_object_set_qdata_full (object, quark_string_list, list, free_string_list);
* }
* static void
* free_string_list (gpointer data)
* {
* GList *node, *list = data;
*
* for (node = list; node; node = node->next)
* g_free (node->data);
* g_list_free (list);
* }
* ```
*
* Using g_object_get_qdata() in the above example, instead of
* g_object_steal_qdata() would have left the destroy function set,
* and thus the partial string list would have been freed upon
* g_object_set_qdata_full().
* @param quark A #GQuark, naming the user data pointer
* @returns The user data pointer set, or %NULL
*/
steal_qdata(quark: GLib.Quark): any | null;
/**
* Reverts the effect of a previous call to
* g_object_freeze_notify(). The freeze count is decreased on `object`
* and when it reaches zero, queued "notify" signals are emitted.
*
* Duplicate notifications for each property are squashed so that at most one
* #GObject::notify signal is emitted for each property, in the reverse order
* in which they have been queued.
*
* It is an error to call this function when the freeze count is zero.
*/
thaw_notify(): void;
/**
* Decreases the reference count of `object`. When its reference count
* drops to 0, the object is finalized (i.e. its memory is freed).
*
* If the pointer to the #GObject may be reused in future (for example, if it is
* an instance variable of another object), it is recommended to clear the
* pointer to %NULL rather than retain a dangling pointer to a potentially
* invalid #GObject instance. Use g_clear_object() for this.
*/
unref(): void;
/**
* This function essentially limits the life time of the `closure` to
* the life time of the object. That is, when the object is finalized,
* the `closure` is invalidated by calling g_closure_invalidate() on
* it, in order to prevent invocations of the closure with a finalized
* (nonexisting) object. Also, g_object_ref() and g_object_unref() are
* added as marshal guards to the `closure,` to ensure that an extra
* reference count is held on `object` during invocation of the
* `closure`. Usually, this function will be called on closures that
* use this `object` as closure data.
* @param closure #GClosure to watch
*/
watch_closure(closure: GObject.Closure): void;
/**
* the `constructed` function is called by g_object_new() as the
* final step of the object creation process. At the point of the call, all
* construction properties have been set on the object. The purpose of this
* call is to allow for object initialisation steps that can only be performed
* after construction properties have been set. `constructed` implementors
* should chain up to the `constructed` call of their parent class to allow it
* to complete its initialisation.
*/
vfunc_constructed(): void;
/**
* emits property change notification for a bunch
* of properties. Overriding `dispatch_properties_changed` should be rarely
* needed.
* @param n_pspecs
* @param pspecs
*/
vfunc_dispatch_properties_changed(n_pspecs: number, pspecs: GObject.ParamSpec): void;
/**
* the `dispose` function is supposed to drop all references to other
* objects, but keep the instance otherwise intact, so that client method
* invocations still work. It may be run multiple times (due to reference
* loops). Before returning, `dispose` should chain up to the `dispose` method
* of the parent class.
*/
vfunc_dispose(): void;
/**
* instance finalization function, should finish the finalization of
* the instance begun in `dispose` and chain up to the `finalize` method of the
* parent class.
*/
vfunc_finalize(): void;
/**
* the generic getter for all properties of this type. Should be
* overridden for every type with properties.
* @param property_id
* @param value
* @param pspec
*/
vfunc_get_property(property_id: number, value: GObject.Value | any, pspec: GObject.ParamSpec): void;
/**
* Emits a "notify" signal for the property `property_name` on `object`.
*
* When possible, eg. when signaling a property change from within the class
* that registered the property, you should use g_object_notify_by_pspec()
* instead.
*
* Note that emission of the notify signal may be blocked with
* g_object_freeze_notify(). In this case, the signal emissions are queued
* and will be emitted (in reverse order) when g_object_thaw_notify() is
* called.
* @param pspec
*/
vfunc_notify(pspec: GObject.ParamSpec): void;
/**
* the generic setter for all properties of this type. Should be
* overridden for every type with properties. If implementations of
* `set_property` don't emit property change notification explicitly, this will
* be done implicitly by the type system. However, if the notify signal is
* emitted explicitly, the type system will not emit it a second time.
* @param property_id
* @param value
* @param pspec
*/
vfunc_set_property(property_id: number, value: GObject.Value | any, pspec: GObject.ParamSpec): void;
/**
* Disconnects a handler from an instance so it will not be called during any future or currently ongoing emissions of the signal it has been connected to.
* @param id Handler ID of the handler to be disconnected
*/
disconnect(id: number): void;
/**
* Sets multiple properties of an object at once. The properties argument should be a dictionary mapping property names to values.
* @param properties Object containing the properties to set
*/
set(properties: { [key: string]: any }): void;
/**
* Blocks a handler of an instance so it will not be called during any signal emissions
* @param id Handler ID of the handler to be blocked
*/
block_signal_handler(id: number): void;
/**
* Unblocks a handler so it will be called again during any signal emissions
* @param id Handler ID of the handler to be unblocked
*/
unblock_signal_handler(id: number): void;
/**
* Stops a signal's emission by the given signal name. This will prevent the default handler and any subsequent signal handlers from being invoked.
* @param detailedName Name of the signal to stop emission of
*/
stop_emission_by_name(detailedName: string): void;
}
namespace Parser {
// Signal callback interfaces
interface Authenticate {
(count: number): boolean;
}
interface Parsed {
(): void;
}
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
parsed_attributes: Gck.Attributes;
parsedAttributes: Gck.Attributes;
parsed_description: string;
parsedDescription: string;
parsed_label: string;
parsedLabel: string;
}
}
/**
* A parser for parsing various types of files or data.
*
* A `GcrParser` can parse various certificate and key files such as OpenSSL
* PEM files, DER encoded certifictes, PKCS#8 keys and so on. Each various
* format is identified by a value in the [enum`DataFormat]` enumeration.
*
* In order to parse data, a new parser is created with [ctor`Parser`.new] and
* then the [signal`Parser:`:authenticate] and [signal`Parser:`:parsed] signals
* should be connected to. Data is then fed to the parser via
* [method`Parser`.parse_data] or [method`Parser`.parse_stream].
*
* During the [signal`Parser:`:parsed] signal the attributes that make up the
* currently parsed item can be retrieved using the
* [method`Parser`.get_parsed_attributes] function.
*/
class Parser extends GObject.Object {
static $gtype: GObject.GType<Parser>;
// Properties
/**
* Get the attributes that make up the currently parsed item. This is
* generally only valid during a [signal`Parser:`:parsed] signal.
*/
get parsed_attributes(): Gck.Attributes;
/**
* Get the attributes that make up the currently parsed item. This is
* generally only valid during a [signal`Parser:`:parsed] signal.
*/
get parsedAttributes(): Gck.Attributes;
/**
* The description of the type of the currently parsed item. This is generally
* only valid during a [signal`Parser:`:parsed] signal.
*/
get parsed_description(): string;
/**
* The description of the type of the currently parsed item. This is generally
* only valid during a [signal`Parser:`:parsed] signal.
*/
get parsedDescription(): string;
/**
* The label of the currently parsed item. This is generally
* only valid during a [signal`Parser:`:parsed] signal.
*/
get parsed_label(): string;
/**
* The label of the currently parsed item. This is generally
* only valid during a [signal`Parser:`:parsed] signal.
*/
get parsedLabel(): string;
// Constructors
constructor(properties?: Partial<Parser.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](): Parser;
// 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: 'authenticate', callback: (_source: this, count: number) => boolean): number;
connect_after(signal: 'authenticate', callback: (_source: this, count: number) => boolean): number;
emit(signal: 'authenticate', count: number): void;
connect(signal: 'parsed', callback: (_source: this) => void): number;
connect_after(signal: 'parsed', callback: (_source: this) => void): number;
emit(signal: 'parsed'): void;
// Virtual methods
/**
* The default handler for the authenticate signal.
* @param count
*/
vfunc_authenticate(count: number): boolean;
/**
* The default handler for the parsed signal.
*/
vfunc_parsed(): void;
// Methods
/**
* Add a password to the set of passwords to try when parsing locked or encrypted
* items. This is usually called from the [signal`Parser:`:authenticate] signal.
* @param password a password to try
*/
add_password(password?: string | null): void;
/**
* Disable parsing of the given format. Use %GCR_FORMAT_ALL to disable all the formats.
* @param format The format identifier
*/
format_disable(format: DataFormat | null): void;
/**
* Enable parsing of the given format. Use %GCR_FORMAT_ALL to enable all the formats.
* @param format The format identifier
*/
format_enable(format: DataFormat | null): void;
/**
* Check whether the given format is supported by the parser.
* @param format The format identifier
* @returns Whether the format is supported.
*/
format_supported(format: DataFormat | null): boolean;
/**
* Get the filename of the parser item.
* @returns the filename set on the parser, or %NULL
*/
get_filename(): string;
/**
* Get the currently parsed item
* @returns the currently parsed item
*/
get_parsed(): Parsed;
/**
* Get the attributes which make up the currently parsed item. This is generally
* only valid during the [signal`Parser:`:parsed] signal.
* @returns the attributes for the current item, which are owned by the parser and should not be freed
*/
get_parsed_attributes(): Gck.Attributes | null;
/**
* Get the raw data block that represents this parsed object. This is only
* valid during the [signal`Parser:`:parsed] signal.
* @returns the raw data block of the currently parsed item; the value is owned by the parser and should not be freed
*/
get_parsed_block(): Uint8Array | null;
/**
* Get the raw data block that represents this parsed object. This is only
* valid during the [signal`Parser:`:parsed] signal.
* @returns the raw data block of the currently parsed item
*/
get_parsed_bytes(): GLib.Bytes;
/**
* Get a description for the type of the currently parsed item. This is generally
* only valid during the [signal`Parser:`:parsed] signal.
* @returns the description for the current item; this is owned by the parser and should not be freed
*/
get_parsed_description(): string | null;
/**
* Get the format of the raw data block that represents this parsed object.
* This corresponds with the data returned from
* [method`Parser`.get_parsed_block].
*
* This is only valid during the [signal`Parser:`:parsed] signal.
* @returns the data format of the currently parsed item
*/
get_parsed_format(): DataFormat;
/**
* Get the label of the currently parsed item. This is generally only valid
* during the [signal`Parser:`:parsed] signal.
* @returns the label of the currently parsed item. The value is owned by the parser and should not be freed.
*/
get_parsed_label(): string | null;
/**
* Parse the data. The [signal`Parser:`:parsed] and
* [signal`Parser:`:authenticate] signals may fire during the parsing.
* @param data the data to parse
* @returns Whether the data was parsed successfully or not.
*/
parse_bytes(data: GLib.Bytes | Uint8Array): boolean;
/**
* Parse the data. The [signal`Parser:`:parsed] and [signal`Parser:`:authenticate]
* signals may fire during the parsing.
*
* A copy of the data will be made. Use [method`Parser`.parse_bytes] to avoid
* this.
* @param data the data to parse
* @returns Whether the data was parsed successfully or not.
*/
parse_data(data: Uint8Array | string): boolean;
/**
* Parse items from the data in a #GInputStream. This function may block while
* reading from the input stream. Use [method`Parser`.parse_stream_async] for
* a non-blocking variant.
*
* The [signal`Parser:`:parsed] and [signal`Parser:`:authenticate] signals
* may fire during the parsing.
* @param input The input stream
* @param cancellable An optional cancellation object
* @returns Whether the parsing completed successfully or not.
*/
parse_stream(input: Gio.InputStream, cancellable?: Gio.Cancellable | null): boolean;
/**
* Parse items from the data in a #GInputStream. This function completes
* asyncronously and doesn't block.
*
* The [signal`Parser:`:parsed] and [signal`Parser:`:authenticate] signals
* may fire during the parsing.
* @param input The input stream
* @param cancellable An optional cancellation object
*/
parse_stream_async(input: Gio.InputStream, cancellable?: Gio.Cancellable | null): Promise<boolean>;
/**
* Parse items from the data in a #GInputStream. This function completes
* asyncronously and doesn't block.
*
* The [signal`Parser:`:parsed] and [signal`Parser:`:authenticate] signals
* may fire during the parsing.
* @param input The input stream
* @param cancellable An optional cancellation object
* @param callback Called when the operation result is ready.
*/
parse_stream_async(
input: Gio.InputStream,
cancellable: Gio.Cancellable | null,
callback: Gio.AsyncReadyCallback<this> | null,
): void;
/**
* Parse items from the data in a #GInputStream. This function completes
* asyncronously and doesn't block.
*
* The [signal`Parser:`:parsed] and [signal`Parser:`:authenticate] signals
* may fire during the parsing.
* @param input The input stream
* @param cancellable An optional cancellation object
* @param callback Called when the operation result is ready.
*/
parse_stream_async(
input: Gio.InputStream,
cancellable?: Gio.Cancellable | null,
callback?: Gio.AsyncReadyCallback<this> | null,
): Promise<boolean> | void;
/**
* Complete an operation to parse a stream.
* @param result The operation result
* @returns Whether the parsing completed successfully or not.
*/
parse_stream_finish(result: Gio.AsyncResult): boolean;
/**
* Sets the filename of the parser item.
* @param filename a string of the filename of the parser item
*/
set_filename(filename?: string | null): void;
}
namespace Pkcs11Certificate {
// Constructor properties interface
interface ConstructorProps extends Gck.Object.ConstructorProps, Certificate.ConstructorProps {
attributes: Gck.Attributes;
}
}
/**
* A certificate loaded from a PKCS#11 storage.
* It is also a valid [class`Gck`.Object] and can be used as such.
*
* Use [func`Gcr`.Pkcs11Certificate.lookup_issuer] to lookup the issuer of a
* given certificate in the PKCS#11 store.
*
* Various common PKCS#11 certificate attributes are automatically loaded and
* are available via [method`Gcr`.Pkcs11Certificate.get_attributes].
*/
class Pkcs11Certificate extends Gck.Object implements Certificate {
static $gtype: GObject.GType<Pkcs11Certificate>;
// Properties
/**
* Automatically loaded attributes for this certificate.
*/
get attributes(): Gck.Attributes;
// Constructors
constructor(properties?: Partial<Pkcs11Certificate.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Static methods
/**
* Lookup a the issuer of a `certificate` in the PKCS#11 storage. The
* lookup is done using the issuer DN of the certificate. No certificate chain
* verification is done. Use a crypto library to make trust decisions.
*
* This call may block, see [func`Gcr`.Pkcs11Certificate.lookup_issuer] for the
* non-blocking version.
*
* Will return %NULL if no issuer certificate is found. Use `error` to determine
* if an error occurred.
* @param certificate a #GcrCertificate
* @param cancellable a cancellable
*/
static lookup_issuer(certificate: Certificate, cancellable?: Gio.Cancellable | null): Certificate | null;
/**
* Lookup a the issuer of a `certificate` in the PKCS#11 storage. The
* lookup is done using the issuer DN of the certificate. No certificate chain
* verification is done. Use a crypto library to make trust decisions.
*
* When the operation is finished, callback will be called. You can then call
* [func`Gcr`.Pkcs11Certificate.lookup_issuer_finish] to get the result of the
* operation.
* @param certificate a #GcrCertificate
* @param cancellable a cancellable
* @param callback a #GAsyncReadyCallback to call when the operation completes
*/
static lookup_issuer_async(
certificate: Certificate,
cancellable?: Gio.Cancellable | null,
callback?: Gio.AsyncReadyCallback<Pkcs11Certificate> | null,
): void;
/**
* Finishes an asynchronous operation started by
* [func`Gcr`.Pkcs11Certificate.lookup_issuer_async].
*
* Will return %NULL if no issuer certificate is found. Use `error` to determine
* if an error occurred.
* @param result the #GAsyncResult passed to the callback
*/
static lookup_issuer_finish(result: Gio.AsyncResult): Certificate | null;
/**
* Lookup a certificate in the PKCS#11 storage by the given URI.
*
* This call may block, see gcr_pkcs11_certificate_new_from_uri_async() for
* the non-blocking version.
*
* Will return %NULL if no certificate is found. Use `error` to determine
* if an error occurred.
* @param pkcs11_uri a A PKCS \#11 URI
* @param cancellable a #GCancellable
*/
static new_from_uri(pkcs11_uri: string, cancellable?: Gio.Cancellable | null): Certificate | null;
/**
* Lookup a certificate in the PKCS#11 storage by the given URI.
*
* When the operation is finished, callback will be called. You can then call
* gcr_pkcs11_certificate_new_from_uri_finish() to get the result of the
* operation.
* @param pkcs11_uri a A PKCS \#11 URI
* @param cancellable a #GCancellable
* @param callback a #GAsyncReadyCallback to call when the operation completes
*/
static new_from_uri_async(
pkcs11_uri: string,
cancellable?: Gio.Cancellable | null,
callback?: Gio.AsyncReadyCallback<Pkcs11Certificate> | null,
): void;
/**
* Finishes an asynchronous operation started by
* gcr_pkcs11_certificate_new_from_uri_async().
*
* Will return %NULL if no certificate is found. Use `error` to determine
* if an error occurred.
* @param result the #GAsyncResult passed to the callback
*/
static new_from_uri_finish(result: Gio.AsyncResult): Certificate | null;
// Methods
/**
* Access the automatically loaded attributes for this certificate.
* @returns the certificate attributes
*/
get_attributes(): Gck.Attributes;
// Inherited properties
/**
* A readable description for this certificate
*/
get description(): string;
/**
* The expiry date of the certificate
*/
get expiry_date(): GLib.DateTime;
/**
* The expiry date of the certificate
*/
get expiryDate(): GLib.DateTime;
/**
* Common name part of the certificate issuer
*/
get issuer_name(): string;
/**
* Common name part of the certificate issuer
*/
get issuerName(): string;
/**
* A readable label for this certificate.
*/
get label(): string;
get subject_name(): string;
get subjectName(): string;
// Inherited methods
/**
* Get the basic constraints for the certificate if present. If %FALSE is
* returned then no basic constraints are present and the `is_ca` and
* `path_len` arguments are not changed.
* @returns whether basic constraints are present or not
*/
get_basic_constraints(): [boolean, boolean, number];
/**
* Gets the raw DER data for an X.509 certificate.
* @returns raw DER data of the X.509 certificate
*/
get_der_data(): Uint8Array;
/**
* Get the expiry date of this certificate.
* @returns An expiry date of this certificate.
*/
get_expiry_date(): GLib.DateTime | null;
/**
* Calculate the fingerprint for this certificate.
*
* The caller should free the returned data using g_free() when
* it is no longer required.
* @param type the type of algorithm for the fingerprint.
* @returns the raw binary fingerprint
*/
get_fingerprint(type: GLib.ChecksumType | null): Uint8Array | null;
/**
* Calculate the fingerprint for this certificate, and return it
* as a hex string.
*
* The caller should free the returned data using g_free() when
* it is no longer required.
* @param type the type of algorithm for the fingerprint.
* @returns an allocated hex string which contains the fingerprint.
*/
get_fingerprint_hex(type: GLib.ChecksumType | null): string | null;
/**
* Get the list of sections from the certificate that can be shown to the user
* interface.
* @returns A #GList of #GcrCertificateSection
*/
get_interface_elements(): CertificateSection[];
/**
* Get the issued date of this certificate.
* @returns A issued date of this certificate.
*/
get_issued_date(): GLib.DateTime | null;
/**
* Get the common name of the issuer of this certificate.
*
* The string returned should be freed by the caller when no longer
* required.
* @returns The allocated issuer CN, or %NULL if no issuer CN present.
*/
get_issuer_cn(): string | null;
/**
* Get the full issuer DN of the certificate as a (mostly)
* readable string.
*
* The string returned should be freed by the caller when no longer
* required.
* @returns The allocated issuer DN of the certificate.
*/
get_issuer_dn(): string | null;
/**
* Get a name to represent the issuer of this certificate.
*
* This will try to lookup the common name, orianizational unit,
* organization in that order.
* @returns the allocated issuer name, or %NULL if no issuer name
*/
get_issuer_name(): string | null;
/**
* Get a part of the DN of the issuer of this certificate.
*
* Examples of a `part` might be the 'OU' (organizational unit)
* or the 'CN' (common name). Only the value of that part
* of the DN is returned.
*
* The string returned should be freed by the caller when no longer
* required.
* @param part a DN type string or OID.
* @returns the allocated part of the issuer DN, or %NULL if no such part is present
*/
get_issuer_part(part: string): string | null;
/**
* Get the raw DER data for the issuer DN of the certificate.
*
* The data should be freed by using g_free() when no longer required.
* @returns allocated memory containing the raw issuer
*/
get_issuer_raw(): Uint8Array | null;
/**
* Get the key size in bits of the public key represented
* by this certificate.
* @returns The key size of the certificate.
*/
get_key_size(): number;
/**
* Returns the subject public key info (SPKI) of the certificate.
* @returns The SPKI of the certificate.
*/
get_public_key_info(): SubjectPublicKeyInfo;
/**
* Get the raw binary serial number of the certificate.
*
* The caller should free the returned data using g_free() when
* it is no longer required.
* @returns the raw binary serial number.
*/
get_serial_number(): Uint8Array | null;
/**
* Get the serial number of the certificate as a hex string.
*
* The caller should free the returned data using g_free() when
* it is no longer required.
* @returns an allocated string containing the serial number as hex.
*/
get_serial_number_hex(): string | null;
/**
* Get the common name of the subject of this certificate.
*
* The string returned should be freed by the caller when no longer
* required.
* @returns The allocated subject CN, or %NULL if no subject CN present.
*/
get_subject_cn(): string | null;
/**
* Get the full subject DN of the certificate as a (mostly)
* readable string.
*
* The string returned should be freed by the caller when no longer
* required.
* @returns The allocated subject DN of the certificate.
*/
get_subject_dn(): string | null;
/**
* Get a name to represent the subject of this certificate.
*
* This will try to lookup the common name, orianizational unit,
* organization in that order.
* @returns the allocated subject name, or %NULL if no subject name
*/
get_subject_name(): string | null;
/**
* Get a part of the DN of the subject of this certificate.
*
* Examples of a `part` might be the 'OU' (organizational unit)
* or the 'CN' (common name). Only the value of that part
* of the DN is returned.
*
* The string returned should be freed by the caller when no longer
* required.
* @param part a DN type string or OID.
* @returns the allocated part of the subject DN, or %NULL if no such part is present.
*/
get_subject_part(part: string): string | null;
/**
* Get the raw DER data for the subject DN of the certificate.
*
* The data should be freed by using g_free() when no longer required.
* @returns allocated memory containing the raw subject
*/
get_subject_raw(): Uint8Array | null;
/**
* Get the version of the X.509 certificate.
* @returns the version of the certificate
*/
get_version(): number;
/**
* Check if `issuer` could be the issuer of this certificate. This is done by
* comparing the relevant subject and issuer fields. No signature check is
* done. Proper verification of certificates must be done via a crypto
* library.
* @param issuer a possible issuer #GcrCertificate
* @returns whether @issuer could be the issuer of the certificate.
*/
is_issuer(issuer: Certificate): boolean;
/**
* Creates a [class`CertificateExtensionList]` that can be used to inspect the
* extensions of this certificate.
* @returns The certificate's extensions
*/
list_extensions(): CertificateExtensionList;
/**
* Implementers of the #GcrCertificate mixin should call this function to notify
* when the certificate has changed to emit notifications on the various
* properties.
*/
mixin_emit_notify(): void;
/**
* Gets the raw DER data for an X.509 certificate.
*/
vfunc_get_der_data(): Uint8Array;
/**
* Creates a binding between `source_property` on `source` and `target_property`
* on `target`.
*
* Whenever the `source_property` is changed the `target_property` is
* updated using the same value. For instance:
*
*
* ```c
* g_object_bind_property (action, "active", widget, "sensitive", 0);
* ```
*
*
* Will result in the "sensitive" property of the widget #GObject instance to be
* updated with the same value of the "active" property of the action #GObject
* instance.
*
* If `flags` contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
* if `target_property` on `target` changes then the `source_property` on `source`
* will be updated as well.
*
* The binding will automatically be removed when either the `source` or the
* `target` instances are finalized. To remove the binding without affecting the
* `source` and the `target` you can just call g_object_unref() on the returned
* #GBinding instance.
*
* Removing the binding by calling g_object_unref() on it must only be done if
* the binding, `source` and `target` are only used from a single thread and it
* is clear that both `source` and `target` outlive the binding. Especially it
* is not safe to rely on this if the binding, `source` or `target` can be
* finalized from different threads. Keep another reference to the binding and
* use g_binding_unbind() instead to be on the safe side.
*
* A #GObject can have multiple bindings.
* @param source_property the property on @source to bind
* @param target the target #GObject
* @param target_property the property on @target to bind
* @param flags flags to pass to #GBinding
* @returns the #GBinding instance representing the binding between the two #GObject instances. The binding is released whenever the #GBinding reference count reaches zero.
*/
bind_property(
source_property: string,
target: GObject.Object,
target_property: string,
flags: GObject.BindingFlags | null,
): GObject.Binding;
/**
* Complete version of g_object_bind_property().
*
* Creates a binding between `source_property` on `source` and `target_property`
* on `target,` allowing you to set the transformation functions to be used by
* the binding.
*
* If `flags` contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
* if `target_property` on `target` changes then the `source_property` on `source`
* will be updated as well. The `transform_from` function is only used in case
* of bidirectional bindings, otherwise it will be ignored
*
* The binding will automatically be removed when either the `source` or the
* `target` instances are finalized. This will release the reference that is
* being held on the #GBinding instance; if you want to hold on to the
* #GBinding instance, you will need to hold a reference to it.
*
* To remove the binding, call g_binding_unbind().
*
* A #GObject can have multiple bindings.
*
* The same `user_data` parameter will be used for both `transform_to`
* and `transform_from` transformation functions; the `notify` function will
* be called once, when the binding is removed. If you need different data
* for each transformation function, please use
* g_object_bind_property_with_closures() instead.
* @param source_property the property on @source to bind
* @param target the target #GObject
* @param target_property the property on @target to bind
* @param flags flags to pass to #GBinding
* @param transform_to the transformation function from the @source to the @target, or %NULL to use the default
* @param transform_from the transformation function from the @target to the @source, or %NULL to use the default
* @param notify a function to call when disposing the binding, to free resources used by the transformation functions, or %NULL if not required
* @returns the #GBinding instance representing the binding between the two #GObject instances. The binding is released whenever the #GBinding reference count reaches zero.
*/
bind_property_full(
source_property: string,
target: GObject.Object,
target_property: string,
flags: GObject.BindingFlags | null,
transform_to?: GObject.BindingTransformFunc | null,
transform_from?: GObject.BindingTransformFunc | null,
notify?: GLib.DestroyNotify | null,
): GObject.Binding;
// Conflicted with GObject.Object.bind_property_full
bind_property_full(...args: never[]): any;
/**
* This function is intended for #GObject implementations to re-enforce
* a [floating][floating-ref] object reference. Doing this is seldom
* required: all #GInitiallyUnowneds are created with a floating reference
* which usually just needs to be sunken by calling g_object_ref_sink().
*/
force_floating(): void;
/**
* Increases the freeze count on `object`. If the freeze count is
* non-zero, the emission of "notify" signals on `object` is
* stopped. The signals are queued until the freeze count is decreased
* to zero. Duplicate notifications are squashed so that at most one
* #GObject::notify signal is emitted for each property modified while the
* object is frozen.
*
* This is necessary for accessors that modify multiple properties to prevent
* premature notification while the object is still being modified.
*/
freeze_notify(): void;
/**
* Gets a named field from the objects table of associations (see g_object_set_data()).
* @param key name of the key for that association
* @returns the data if found, or %NULL if no such data exists.
*/
get_data(key: string): any | null;
// Conflicted with Gck.Object.get_data
get_data(...args: never[]): any;
/**
* Gets a property of an object.
*
* The value can be:
* - an empty GObject.Value initialized by G_VALUE_INIT, which will be automatically initialized with the expected type of the property (since GLib 2.60)
* - a GObject.Value initialized with the expected type of the property
* - a GObject.Value initialized with a type to which the expected type of the property can be transformed
*
* In general, a copy is made of the property contents and the caller is responsible for freeing the memory by calling GObject.Value.unset.
*
* Note that GObject.Object.get_property is really intended for language bindings, GObject.Object.get is much more convenient for C programming.
* @param property_name The name of the property to get
* @param value Return location for the property value. Can be an empty GObject.Value initialized by G_VALUE_INIT (auto-initialized with expected type since GLib 2.60), a GObject.Value initialized with the expected property type, or a GObject.Value initialized with a transformable type
*/
get_property(property_name: string, value: GObject.Value | any): any;
/**
* This function gets back user data pointers stored via
* g_object_set_qdata().
* @param quark A #GQuark, naming the user data pointer
* @returns The user data pointer set, or %NULL
*/
get_qdata(quark: GLib.Quark): any | null;
/**
* Gets `n_properties` properties for an `object`.
* Obtained properties will be set to `values`. All properties must be valid.
* Warnings will be emitted and undefined behaviour may result if invalid
* properties are passed in.
* @param names the names of each property to get
* @param values the values of each property to get
*/
getv(names: string[], values: (GObject.Value | any)[]): void;
/**
* Checks whether `object` has a [floating][floating-ref] reference.
* @returns %TRUE if @object has a floating reference
*/
is_floating(): boolean;
/**
* Emits a "notify" signal for the property `property_name` on `object`.
*
* When possible, eg. when signaling a property change from within the class
* that registered the property, you should use g_object_notify_by_pspec()
* instead.
*
* Note that emission of the notify signal may be blocked with
* g_object_freeze_notify(). In this case, the signal emissions are queued
* and will be emitted (in reverse order) when g_object_thaw_notify() is
* called.
* @param property_name the name of a property installed on the class of @object.
*/
notify(property_name: string): void;
/**
* Emits a "notify" signal for the property specified by `pspec` on `object`.
*
* This function omits the property name lookup, hence it is faster than
* g_object_notify().
*
* One way to avoid using g_object_notify() from within the
* class that registered the properties, and using g_object_notify_by_pspec()
* instead, is to store the GParamSpec used with
* g_object_class_install_property() inside a static array, e.g.:
*
*
* ```c
* typedef enum
* {
* PROP_FOO = 1,
* PROP_LAST
* } MyObjectProperty;
*
* static GParamSpec *properties[PROP_LAST];
*
* static void
* my_object_class_init (MyObjectClass *klass)
* {
* properties[PROP_FOO] = g_param_spec_int ("foo", NULL, NULL,
* 0, 100,
* 50,
* G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
* g_object_class_install_property (gobject_class,
* PROP_FOO,
* properties[PROP_FOO]);
* }
* ```
*
*
* and then notify a change on the "foo" property with:
*
*
* ```c
* g_object_notify_by_pspec (self, properties[PROP_FOO]);
* ```
*
* @param pspec the #GParamSpec of a property installed on the class of @object.
*/
notify_by_pspec(pspec: GObject.ParamSpec): void;
/**
* Increases the reference count of `object`.
*
* Since GLib 2.56, if `GLIB_VERSION_MAX_ALLOWED` is 2.56 or greater, the type
* of `object` will be propagated to the return type (using the GCC typeof()
* extension), so any casting the caller needs to do on the return type must be
* explicit.
* @returns the same @object
*/
ref(): GObject.Object;
/**
* Increase the reference count of `object,` and possibly remove the
* [floating][floating-ref] reference, if `object` has a floating reference.
*
* In other words, if the object is floating, then this call "assumes
* ownership" of the floating reference, converting it to a normal
* reference by clearing the floating flag while leaving the reference
* count unchanged. If the object is not floating, then this call
* adds a new normal reference increasing the reference count by one.
*
* Since GLib 2.56, the type of `object` will be propagated to the return type
* under the same conditions as for g_object_ref().
* @returns @object
*/
ref_sink(): GObject.Object;
/**
* Releases all references to other objects. This can be used to break
* reference cycles.
*
* This function should only be called from object system implementations.
*/
run_dispose(): void;
/**
* Each object carries around a table of associations from
* strings to pointers. This function lets you set an association.
*
* If the object already had an association with that name,
* the old association will be destroyed.
*
* Internally, the `key` is converted to a #GQuark using g_quark_from_string().
* This means a copy of `key` is kept permanently (even after `object` has been
* finalized) — so it is recommended to only use a small, bounded set of values
* for `key` in your program, to avoid the #GQuark storage growing unbounded.
* @param key name of the key
* @param data data to associate with that key
*/
set_data(key: string, data?: any | null): void;
/**
* Sets a property on an object.
* @param property_name The name of the property to set
* @param value The value to set the property to
*/
set_property(property_name: string, value: GObject.Value | any): void;
/**
* Remove a specified datum from the object's data associations,
* without invoking the association's destroy handler.
* @param key name of the key
* @returns the data if found, or %NULL if no such data exists.
*/
steal_data(key: string): any | null;
/**
* This function gets back user data pointers stored via
* g_object_set_qdata() and removes the `data` from object
* without invoking its destroy() function (if any was
* set).
* Usually, calling this function is only required to update
* user data pointers with a destroy notifier, for example:
*
* ```c
* void
* object_add_to_user_list (GObject *object,
* const gchar *new_string)
* {
* // the quark, naming the object data
* GQuark quark_string_list = g_quark_from_static_string ("my-string-list");
* // retrieve the old string list
* GList *list = g_object_steal_qdata (object, quark_string_list);
*
* // prepend new string
* list = g_list_prepend (list, g_strdup (new_string));
* // this changed 'list', so we need to set it again
* g_object_set_qdata_full (object, quark_string_list, list, free_string_list);
* }
* static void
* free_string_list (gpointer data)
* {
* GList *node, *list = data;
*
* for (node = list; node; node = node->next)
* g_free (node->data);
* g_list_free (list);
* }
* ```
*
* Using g_object_get_qdata() in the above example, instead of
* g_object_steal_qdata() would have left the destroy function set,
* and thus the partial string list would have been freed upon
* g_object_set_qdata_full().
* @param quark A #GQuark, naming the user data pointer
* @returns The user data pointer set, or %NULL
*/
steal_qdata(quark: GLib.Quark): any | null;
/**
* Reverts the effect of a previous call to
* g_object_freeze_notify(). The freeze count is decreased on `object`
* and when it reaches zero, queued "notify" signals are emitted.
*
* Duplicate notifications for each property are squashed so that at most one
* #GObject::notify signal is emitted for each property, in the reverse order
* in which they have been queued.
*
* It is an error to call this function when the freeze count is zero.
*/
thaw_notify(): void;
/**
* Decreases the reference count of `object`. When its reference count
* drops to 0, the object is finalized (i.e. its memory is freed).
*
* If the pointer to the #GObject may be reused in future (for example, if it is
* an instance variable of another object), it is recommended to clear the
* pointer to %NULL rather than retain a dangling pointer to a potentially
* invalid #GObject instance. Use g_clear_object() for this.
*/
unref(): void;
/**
* This function essentially limits the life time of the `closure` to
* the life time of the object. That is, when the object is finalized,
* the `closure` is invalidated by calling g_closure_invalidate() on
* it, in order to prevent invocations of the closure with a finalized
* (nonexisting) object. Also, g_object_ref() and g_object_unref() are
* added as marshal guards to the `closure,` to ensure that an extra
* reference count is held on `object` during invocation of the
* `closure`. Usually, this function will be called on closures that
* use this `object` as closure data.
* @param closure #GClosure to watch
*/
watch_closure(closure: GObject.Closure): void;
/**
* the `constructed` function is called by g_object_new() as the
* final step of the object creation process. At the point of the call, all
* construction properties have been set on the object. The purpose of this
* call is to allow for object initialisation steps that can only be performed
* after construction properties have been set. `constructed` implementors
* should chain up to the `constructed` call of their parent class to allow it
* to complete its initialisation.
*/
vfunc_constructed(): void;
/**
* emits property change notification for a bunch
* of properties. Overriding `dispatch_properties_changed` should be rarely
* needed.
* @param n_pspecs
* @param pspecs
*/
vfunc_dispatch_properties_changed(n_pspecs: number, pspecs: GObject.ParamSpec): void;
/**
* the `dispose` function is supposed to drop all references to other
* objects, but keep the instance otherwise intact, so that client method
* invocations still work. It may be run multiple times (due to reference
* loops). Before returning, `dispose` should chain up to the `dispose` method
* of the parent class.
*/
vfunc_dispose(): void;
/**
* instance finalization function, should finish the finalization of
* the instance begun in `dispose` and chain up to the `finalize` method of the
* parent class.
*/
vfunc_finalize(): void;
/**
* the generic getter for all properties of this type. Should be
* overridden for every type with properties.
* @param property_id
* @param value
* @param pspec
*/
vfunc_get_property(property_id: number, value: GObject.Value | any, pspec: GObject.ParamSpec): void;
/**
* Emits a "notify" signal for the property `property_name` on `object`.
*
* When possible, eg. when signaling a property change from within the class
* that registered the property, you should use g_object_notify_by_pspec()
* instead.
*
* Note that emission of the notify signal may be blocked with
* g_object_freeze_notify(). In this case, the signal emissions are queued
* and will be emitted (in reverse order) when g_object_thaw_notify() is
* called.
* @param pspec
*/
vfunc_notify(pspec: GObject.ParamSpec): void;
/**
* the generic setter for all properties of this type. Should be
* overridden for every type with properties. If implementations of
* `set_property` don't emit property change notification explicitly, this will
* be done implicitly by the type system. However, if the notify signal is
* emitted explicitly, the type system will not emit it a second time.
* @param property_id
* @param value
* @param pspec
*/
vfunc_set_property(property_id: number, value: GObject.Value | any, pspec: GObject.ParamSpec): void;
/**
* Disconnects a handler from an instance so it will not be called during any future or currently ongoing emissions of the signal it has been connected to.
* @param id Handler ID of the handler to be disconnected
*/
disconnect(id: number): void;
/**
* Sets multiple properties of an object at once. The properties argument should be a dictionary mapping property names to values.
* @param properties Object containing the properties to set
*/
set(properties: { [key: string]: any }): void;
// Conflicted with Gck.Object.set
set(...args: never[]): any;
/**
* Blocks a handler of an instance so it will not be called during any signal emissions
* @param id Handler ID of the handler to be blocked
*/
block_signal_handler(id: number): void;
/**
* Unblocks a handler so it will be called again during any signal emissions
* @param id Handler ID of the handler to be unblocked
*/
unblock_signal_handler(id: number): void;
/**
* Stops a signal's emission by the given signal name. This will prevent the default handler and any subsequent signal handlers from being invoked.
* @param detailedName Name of the signal to stop emission of
*/
stop_emission_by_name(detailedName: string): void;
}
namespace SecretExchange {
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
protocol: string;
}
}
/**
* Allows exchange of secrets between two processes on the same system without
* exposing those secrets to things like loggers, non-pageable memory etc.
*
* This does not protect against active attacks like MITM attacks.
*
* Each side creates a secret exchange object, and one of the sides calls
* [method`SecretExchange`.begin]. This creates a string, which should be passed
* to the other side. Each side passes the strings it receives into
* [method`SecretExchange`.receive].
*
* In order to send a reply (either with or without a secret) use
* [method`SecretExchange`.send]. A side must have successfully called
* [method`SecretExchange`.receive] before it can use
* [method`SecretExchange`.send].
*
* The secret exchange objects can be used for multiple iterations of the
* conversation, or for just one request/reply. The only limitation being that
* the initial request cannot contain a secret.
*
* Caveat: Information about the approximate length (rounded up to the nearest
* 16 bytes) may be leaked. If this is considered inacceptable, do not use
* [class`SecretExchange]`.
*/
class SecretExchange extends GObject.Object {
static $gtype: GObject.GType<SecretExchange>;
// Properties
/**
* The protocol being used for the exchange.
*
* Will be %NULL if no protocol was specified when creating this object,
* and either [method`SecretExchange`.begin] or [method`SecretExchange`.receive]
* have not been called successfully.
*/
get protocol(): string;
// Constructors
constructor(properties?: Partial<SecretExchange.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](protocol?: string | null): SecretExchange;
// Virtual methods
vfunc_derive_transport_key(peer: number, n_peer: number): boolean;
vfunc_generate_exchange_key(scheme: string, public_key: number, n_public_key: number): boolean;
// Methods
/**
* Begin the secret exchange. The resulting string should be sent to the other
* side of the exchange. The other side should use [method`SecretExchange`.receive]
* to process the string.
* @returns A newly allocated string to be sent to the other side of the secret exchange
*/
begin(): string;
/**
* Will return %NULL if no protocol was specified, and either
* [method`SecretExchange`.begin] or [method`SecretExchange`.receive] have not
* been called successfully.
* @returns the protocol or %NULL
*/
get_protocol(): string;
/**
* Returns the last secret received. If no secret has yet been received this
* will return %NULL. The string is owned by the #GcrSecretExchange object
* and will be valid until the next time that gcr_secret_exchange_receive()
* is called on this object, or the object is destroyed.
*
* Depending on the secret passed into the other side of the secret exchange,
* the result may be a binary string. It does however have a null terminator,
* so if you're certain that it is does not contain arbitrary binary data,
* it can be used as a string.
* @returns the last secret received
*/
get_secret(): string[];
/**
* Receive a string from the other side of secret exchange. This string will
* have been created by [method`SecretExchange`.begin] or
* [method`SecretExchange`.send].
*
* After this call completes successfully the value returned from
* gcr_secret_exchange_get_secret() will have changed.
* @param exchange the string received
* @returns whether the string was successfully parsed and received
*/
receive(exchange: string): boolean;
/**
* Send a reply to the other side of the secret exchange, optionally sending a
* secret.
*
* [method`SecretExchange`.receive] must have been successfully called at least
* once on this object. In other words this object must have received data
* from the other side of the secret exchange, before we can send a secret.
* @param secret optionally, a secret to send to the other side
* @param secret_len length of @secret, or -1 if null terminated
* @returns a newly allocated string to be sent to the other side of the secret exchange
*/
send(secret: string | null, secret_len: number): string;
}
namespace SimpleCertificate {
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps, Certificate.ConstructorProps {}
}
/**
* An implementation of [iface`Certificate]` which loads a certificate from DER
* data already located in memory.
*
* To create an object, use the [ctor`SimpleCertificate`.new] or
* [ctor`SimpleCertificate`.new_static] functions.
*/
class SimpleCertificate extends GObject.Object implements Certificate {
static $gtype: GObject.GType<SimpleCertificate>;
// Constructors
constructor(properties?: Partial<SimpleCertificate.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](data: Uint8Array | string): SimpleCertificate;
// Inherited properties
/**
* A readable description for this certificate
*/
get description(): string;
/**
* The expiry date of the certificate
*/
get expiry_date(): GLib.DateTime;
/**
* The expiry date of the certificate
*/
get expiryDate(): GLib.DateTime;
/**
* Common name part of the certificate issuer
*/
get issuer_name(): string;
/**
* Common name part of the certificate issuer
*/
get issuerName(): string;
/**
* A readable label for this certificate.
*/
get label(): string;
get subject_name(): string;
get subjectName(): string;
// Inherited methods
/**
* Get the basic constraints for the certificate if present. If %FALSE is
* returned then no basic constraints are present and the `is_ca` and
* `path_len` arguments are not changed.
* @returns whether basic constraints are present or not
*/
get_basic_constraints(): [boolean, boolean, number];
/**
* Gets the raw DER data for an X.509 certificate.
* @returns raw DER data of the X.509 certificate
*/
get_der_data(): Uint8Array;
/**
* Get the expiry date of this certificate.
* @returns An expiry date of this certificate.
*/
get_expiry_date(): GLib.DateTime | null;
/**
* Calculate the fingerprint for this certificate.
*
* The caller should free the returned data using g_free() when
* it is no longer required.
* @param type the type of algorithm for the fingerprint.
* @returns the raw binary fingerprint
*/
get_fingerprint(type: GLib.ChecksumType | null): Uint8Array | null;
/**
* Calculate the fingerprint for this certificate, and return it
* as a hex string.
*
* The caller should free the returned data using g_free() when
* it is no longer required.
* @param type the type of algorithm for the fingerprint.
* @returns an allocated hex string which contains the fingerprint.
*/
get_fingerprint_hex(type: GLib.ChecksumType | null): string | null;
/**
* Get the list of sections from the certificate that can be shown to the user
* interface.
* @returns A #GList of #GcrCertificateSection
*/
get_interface_elements(): CertificateSection[];
/**
* Get the issued date of this certificate.
* @returns A issued date of this certificate.
*/
get_issued_date(): GLib.DateTime | null;
/**
* Get the common name of the issuer of this certificate.
*
* The string returned should be freed by the caller when no longer
* required.
* @returns The allocated issuer CN, or %NULL if no issuer CN present.
*/
get_issuer_cn(): string | null;
/**
* Get the full issuer DN of the certificate as a (mostly)
* readable string.
*
* The string returned should be freed by the caller when no longer
* required.
* @returns The allocated issuer DN of the certificate.
*/
get_issuer_dn(): string | null;
/**
* Get a name to represent the issuer of this certificate.
*
* This will try to lookup the common name, orianizational unit,
* organization in that order.
* @returns the allocated issuer name, or %NULL if no issuer name
*/
get_issuer_name(): string | null;
/**
* Get a part of the DN of the issuer of this certificate.
*
* Examples of a `part` might be the 'OU' (organizational unit)
* or the 'CN' (common name). Only the value of that part
* of the DN is returned.
*
* The string returned should be freed by the caller when no longer
* required.
* @param part a DN type string or OID.
* @returns the allocated part of the issuer DN, or %NULL if no such part is present
*/
get_issuer_part(part: string): string | null;
/**
* Get the raw DER data for the issuer DN of the certificate.
*
* The data should be freed by using g_free() when no longer required.
* @returns allocated memory containing the raw issuer
*/
get_issuer_raw(): Uint8Array | null;
/**
* Get the key size in bits of the public key represented
* by this certificate.
* @returns The key size of the certificate.
*/
get_key_size(): number;
/**
* Returns the subject public key info (SPKI) of the certificate.
* @returns The SPKI of the certificate.
*/
get_public_key_info(): SubjectPublicKeyInfo;
/**
* Get the raw binary serial number of the certificate.
*
* The caller should free the returned data using g_free() when
* it is no longer required.
* @returns the raw binary serial number.
*/
get_serial_number(): Uint8Array | null;
/**
* Get the serial number of the certificate as a hex string.
*
* The caller should free the returned data using g_free() when
* it is no longer required.
* @returns an allocated string containing the serial number as hex.
*/
get_serial_number_hex(): string | null;
/**
* Get the common name of the subject of this certificate.
*
* The string returned should be freed by the caller when no longer
* required.
* @returns The allocated subject CN, or %NULL if no subject CN present.
*/
get_subject_cn(): string | null;
/**
* Get the full subject DN of the certificate as a (mostly)
* readable string.
*
* The string returned should be freed by the caller when no longer
* required.
* @returns The allocated subject DN of the certificate.
*/
get_subject_dn(): string | null;
/**
* Get a name to represent the subject of this certificate.
*
* This will try to lookup the common name, orianizational unit,
* organization in that order.
* @returns the allocated subject name, or %NULL if no subject name
*/
get_subject_name(): string | null;
/**
* Get a part of the DN of the subject of this certificate.
*
* Examples of a `part` might be the 'OU' (organizational unit)
* or the 'CN' (common name). Only the value of that part
* of the DN is returned.
*
* The string returned should be freed by the caller when no longer
* required.
* @param part a DN type string or OID.
* @returns the allocated part of the subject DN, or %NULL if no such part is present.
*/
get_subject_part(part: string): string | null;
/**
* Get the raw DER data for the subject DN of the certificate.
*
* The data should be freed by using g_free() when no longer required.
* @returns allocated memory containing the raw subject
*/
get_subject_raw(): Uint8Array | null;
/**
* Get the version of the X.509 certificate.
* @returns the version of the certificate
*/
get_version(): number;
/**
* Check if `issuer` could be the issuer of this certificate. This is done by
* comparing the relevant subject and issuer fields. No signature check is
* done. Proper verification of certificates must be done via a crypto
* library.
* @param issuer a possible issuer #GcrCertificate
* @returns whether @issuer could be the issuer of the certificate.
*/
is_issuer(issuer: Certificate): boolean;
/**
* Creates a [class`CertificateExtensionList]` that can be used to inspect the
* extensions of this certificate.
* @returns The certificate's extensions
*/
list_extensions(): CertificateExtensionList;
/**
* Implementers of the #GcrCertificate mixin should call this function to notify
* when the certificate has changed to emit notifications on the various
* properties.
*/
mixin_emit_notify(): void;
/**
* Gets the raw DER data for an X.509 certificate.
*/
vfunc_get_der_data(): Uint8Array;
/**
* Creates a binding between `source_property` on `source` and `target_property`
* on `target`.
*
* Whenever the `source_property` is changed the `target_property` is
* updated using the same value. For instance:
*
*
* ```c
* g_object_bind_property (action, "active", widget, "sensitive", 0);
* ```
*
*
* Will result in the "sensitive" property of the widget #GObject instance to be
* updated with the same value of the "active" property of the action #GObject
* instance.
*
* If `flags` contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
* if `target_property` on `target` changes then the `source_property` on `source`
* will be updated as well.
*
* The binding will automatically be removed when either the `source` or the
* `target` instances are finalized. To remove the binding without affecting the
* `source` and the `target` you can just call g_object_unref() on the returned
* #GBinding instance.
*
* Removing the binding by calling g_object_unref() on it must only be done if
* the binding, `source` and `target` are only used from a single thread and it
* is clear that both `source` and `target` outlive the binding. Especially it
* is not safe to rely on this if the binding, `source` or `target` can be
* finalized from different threads. Keep another reference to the binding and
* use g_binding_unbind() instead to be on the safe side.
*
* A #GObject can have multiple bindings.
* @param source_property the property on @source to bind
* @param target the target #GObject
* @param target_property the property on @target to bind
* @param flags flags to pass to #GBinding
* @returns the #GBinding instance representing the binding between the two #GObject instances. The binding is released whenever the #GBinding reference count reaches zero.
*/
bind_property(
source_property: string,
target: GObject.Object,
target_property: string,
flags: GObject.BindingFlags | null,
): GObject.Binding;
/**
* Complete version of g_object_bind_property().
*
* Creates a binding between `source_property` on `source` and `target_property`
* on `target,` allowing you to set the transformation functions to be used by
* the binding.
*
* If `flags` contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
* if `target_property` on `target` changes then the `source_property` on `source`
* will be updated as well. The `transform_from` function is only used in case
* of bidirectional bindings, otherwise it will be ignored
*
* The binding will automatically be removed when either the `source` or the
* `target` instances are finalized. This will release the reference that is
* being held on the #GBinding instance; if you want to hold on to the
* #GBinding instance, you will need to hold a reference to it.
*
* To remove the binding, call g_binding_unbind().
*
* A #GObject can have multiple bindings.
*
* The same `user_data` parameter will be used for both `transform_to`
* and `transform_from` transformation functions; the `notify` function will
* be called once, when the binding is removed. If you need different data
* for each transformation function, please use
* g_object_bind_property_with_closures() instead.
* @param source_property the property on @source to bind
* @param target the target #GObject
* @param target_property the property on @target to bind
* @param flags flags to pass to #GBinding
* @param transform_to the transformation function from the @source to the @target, or %NULL to use the default
* @param transform_from the transformation function from the @target to the @source, or %NULL to use the default
* @param notify a function to call when disposing the binding, to free resources used by the transformation functions, or %NULL if not required
* @returns the #GBinding instance representing the binding between the two #GObject instances. The binding is released whenever the #GBinding reference count reaches zero.
*/
bind_property_full(
source_property: string,
target: GObject.Object,
target_property: string,
flags: GObject.BindingFlags | null,
transform_to?: GObject.BindingTransformFunc | null,
transform_from?: GObject.BindingTransformFunc | null,
notify?: GLib.DestroyNotify | null,
): GObject.Binding;
// Conflicted with GObject.Object.bind_property_full
bind_property_full(...args: never[]): any;
/**
* This function is intended for #GObject implementations to re-enforce
* a [floating][floating-ref] object reference. Doing this is seldom
* required: all #GInitiallyUnowneds are created with a floating reference
* which usually just needs to be sunken by calling g_object_ref_sink().
*/
force_floating(): void;
/**
* Increases the freeze count on `object`. If the freeze count is
* non-zero, the emission of "notify" signals on `object` is
* stopped. The signals are queued until the freeze count is decreased
* to zero. Duplicate notifications are squashed so that at most one
* #GObject::notify signal is emitted for each property modified while the
* object is frozen.
*
* This is necessary for accessors that modify multiple properties to prevent
* premature notification while the object is still being modified.
*/
freeze_notify(): void;
/**
* Gets a named field from the objects table of associations (see g_object_set_data()).
* @param key name of the key for that association
* @returns the data if found, or %NULL if no such data exists.
*/
get_data(key: string): any | null;
/**
* Gets a property of an object.
*
* The value can be:
* - an empty GObject.Value initialized by G_VALUE_INIT, which will be automatically initialized with the expected type of the property (since GLib 2.60)
* - a GObject.Value initialized with the expected type of the property
* - a GObject.Value initialized with a type to which the expected type of the property can be transformed
*
* In general, a copy is made of the property contents and the caller is responsible for freeing the memory by calling GObject.Value.unset.
*
* Note that GObject.Object.get_property is really intended for language bindings, GObject.Object.get is much more convenient for C programming.
* @param property_name The name of the property to get
* @param value Return location for the property value. Can be an empty GObject.Value initialized by G_VALUE_INIT (auto-initialized with expected type since GLib 2.60), a GObject.Value initialized with the expected property type, or a GObject.Value initialized with a transformable type
*/
get_property(property_name: string, value: GObject.Value | any): any;
/**
* This function gets back user data pointers stored via
* g_object_set_qdata().
* @param quark A #GQuark, naming the user data pointer
* @returns The user data pointer set, or %NULL
*/
get_qdata(quark: GLib.Quark): any | null;
/**
* Gets `n_properties` properties for an `object`.
* Obtained properties will be set to `values`. All properties must be valid.
* Warnings will be emitted and undefined behaviour may result if invalid
* properties are passed in.
* @param names the names of each property to get
* @param values the values of each property to get
*/
getv(names: string[], values: (GObject.Value | any)[]): void;
/**
* Checks whether `object` has a [floating][floating-ref] reference.
* @returns %TRUE if @object has a floating reference
*/
is_floating(): boolean;
/**
* Emits a "notify" signal for the property `property_name` on `object`.
*
* When possible, eg. when signaling a property change from within the class
* that registered the property, you should use g_object_notify_by_pspec()
* instead.
*
* Note that emission of the notify signal may be blocked with
* g_object_freeze_notify(). In this case, the signal emissions are queued
* and will be emitted (in reverse order) when g_object_thaw_notify() is
* called.
* @param property_name the name of a property installed on the class of @object.
*/
notify(property_name: string): void;
/**
* Emits a "notify" signal for the property specified by `pspec` on `object`.
*
* This function omits the property name lookup, hence it is faster than
* g_object_notify().
*
* One way to avoid using g_object_notify() from within the
* class that registered the properties, and using g_object_notify_by_pspec()
* instead, is to store the GParamSpec used with
* g_object_class_install_property() inside a static array, e.g.:
*
*
* ```c
* typedef enum
* {
* PROP_FOO = 1,
* PROP_LAST
* } MyObjectProperty;
*
* static GParamSpec *properties[PROP_LAST];
*
* static void
* my_object_class_init (MyObjectClass *klass)
* {
* properties[PROP_FOO] = g_param_spec_int ("foo", NULL, NULL,
* 0, 100,
* 50,
* G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
* g_object_class_install_property (gobject_class,
* PROP_FOO,
* properties[PROP_FOO]);
* }
* ```
*
*
* and then notify a change on the "foo" property with:
*
*
* ```c
* g_object_notify_by_pspec (self, properties[PROP_FOO]);
* ```
*
* @param pspec the #GParamSpec of a property installed on the class of @object.
*/
notify_by_pspec(pspec: GObject.ParamSpec): void;
/**
* Increases the reference count of `object`.
*
* Since GLib 2.56, if `GLIB_VERSION_MAX_ALLOWED` is 2.56 or greater, the type
* of `object` will be propagated to the return type (using the GCC typeof()
* extension), so any casting the caller needs to do on the return type must be
* explicit.
* @returns the same @object
*/
ref(): GObject.Object;
/**
* Increase the reference count of `object,` and possibly remove the
* [floating][floating-ref] reference, if `object` has a floating reference.
*
* In other words, if the object is floating, then this call "assumes
* ownership" of the floating reference, converting it to a normal
* reference by clearing the floating flag while leaving the reference
* count unchanged. If the object is not floating, then this call
* adds a new normal reference increasing the reference count by one.
*
* Since GLib 2.56, the type of `object` will be propagated to the return type
* under the same conditions as for g_object_ref().
* @returns @object
*/
ref_sink(): GObject.Object;
/**
* Releases all references to other objects. This can be used to break
* reference cycles.
*
* This function should only be called from object system implementations.
*/
run_dispose(): void;
/**
* Each object carries around a table of associations from
* strings to pointers. This function lets you set an association.
*
* If the object already had an association with that name,
* the old association will be destroyed.
*
* Internally, the `key` is converted to a #GQuark using g_quark_from_string().
* This means a copy of `key` is kept permanently (even after `object` has been
* finalized) — so it is recommended to only use a small, bounded set of values
* for `key` in your program, to avoid the #GQuark storage growing unbounded.
* @param key name of the key
* @param data data to associate with that key
*/
set_data(key: string, data?: any | null): void;
/**
* Sets a property on an object.
* @param property_name The name of the property to set
* @param value The value to set the property to
*/
set_property(property_name: string, value: GObject.Value | any): void;
/**
* Remove a specified datum from the object's data associations,
* without invoking the association's destroy handler.
* @param key name of the key
* @returns the data if found, or %NULL if no such data exists.
*/
steal_data(key: string): any | null;
/**
* This function gets back user data pointers stored via
* g_object_set_qdata() and removes the `data` from object
* without invoking its destroy() function (if any was
* set).
* Usually, calling this function is only required to update
* user data pointers with a destroy notifier, for example:
*
* ```c
* void
* object_add_to_user_list (GObject *object,
* const gchar *new_string)
* {
* // the quark, naming the object data
* GQuark quark_string_list = g_quark_from_static_string ("my-string-list");
* // retrieve the old string list
* GList *list = g_object_steal_qdata (object, quark_string_list);
*
* // prepend new string
* list = g_list_prepend (list, g_strdup (new_string));
* // this changed 'list', so we need to set it again
* g_object_set_qdata_full (object, quark_string_list, list, free_string_list);
* }
* static void
* free_string_list (gpointer data)
* {
* GList *node, *list = data;
*
* for (node = list; node; node = node->next)
* g_free (node->data);
* g_list_free (list);
* }
* ```
*
* Using g_object_get_qdata() in the above example, instead of
* g_object_steal_qdata() would have left the destroy function set,
* and thus the partial string list would have been freed upon
* g_object_set_qdata_full().
* @param quark A #GQuark, naming the user data pointer
* @returns The user data pointer set, or %NULL
*/
steal_qdata(quark: GLib.Quark): any | null;
/**
* Reverts the effect of a previous call to
* g_object_freeze_notify(). The freeze count is decreased on `object`
* and when it reaches zero, queued "notify" signals are emitted.
*
* Duplicate notifications for each property are squashed so that at most one
* #GObject::notify signal is emitted for each property, in the reverse order
* in which they have been queued.
*
* It is an error to call this function when the freeze count is zero.
*/
thaw_notify(): void;
/**
* Decreases the reference count of `object`. When its reference count
* drops to 0, the object is finalized (i.e. its memory is freed).
*
* If the pointer to the #GObject may be reused in future (for example, if it is
* an instance variable of another object), it is recommended to clear the
* pointer to %NULL rather than retain a dangling pointer to a potentially
* invalid #GObject instance. Use g_clear_object() for this.
*/
unref(): void;
/**
* This function essentially limits the life time of the `closure` to
* the life time of the object. That is, when the object is finalized,
* the `closure` is invalidated by calling g_closure_invalidate() on
* it, in order to prevent invocations of the closure with a finalized
* (nonexisting) object. Also, g_object_ref() and g_object_unref() are
* added as marshal guards to the `closure,` to ensure that an extra
* reference count is held on `object` during invocation of the
* `closure`. Usually, this function will be called on closures that
* use this `object` as closure data.
* @param closure #GClosure to watch
*/
watch_closure(closure: GObject.Closure): void;
/**
* the `constructed` function is called by g_object_new() as the
* final step of the object creation process. At the point of the call, all
* construction properties have been set on the object. The purpose of this
* call is to allow for object initialisation steps that can only be performed
* after construction properties have been set. `constructed` implementors
* should chain up to the `constructed` call of their parent class to allow it
* to complete its initialisation.
*/
vfunc_constructed(): void;
/**
* emits property change notification for a bunch
* of properties. Overriding `dispatch_properties_changed` should be rarely
* needed.
* @param n_pspecs
* @param pspecs
*/
vfunc_dispatch_properties_changed(n_pspecs: number, pspecs: GObject.ParamSpec): void;
/**
* the `dispose` function is supposed to drop all references to other
* objects, but keep the instance otherwise intact, so that client method
* invocations still work. It may be run multiple times (due to reference
* loops). Before returning, `dispose` should chain up to the `dispose` method
* of the parent class.
*/
vfunc_dispose(): void;
/**
* instance finalization function, should finish the finalization of
* the instance begun in `dispose` and chain up to the `finalize` method of the
* parent class.
*/
vfunc_finalize(): void;
/**
* the generic getter for all properties of this type. Should be
* overridden for every type with properties.
* @param property_id
* @param value
* @param pspec
*/
vfunc_get_property(property_id: number, value: GObject.Value | any, pspec: GObject.ParamSpec): void;
/**
* Emits a "notify" signal for the property `property_name` on `object`.
*
* When possible, eg. when signaling a property change from within the class
* that registered the property, you should use g_object_notify_by_pspec()
* instead.
*
* Note that emission of the notify signal may be blocked with
* g_object_freeze_notify(). In this case, the signal emissions are queued
* and will be emitted (in reverse order) when g_object_thaw_notify() is
* called.
* @param pspec
*/
vfunc_notify(pspec: GObject.ParamSpec): void;
/**
* the generic setter for all properties of this type. Should be
* overridden for every type with properties. If implementations of
* `set_property` don't emit property change notification explicitly, this will
* be done implicitly by the type system. However, if the notify signal is
* emitted explicitly, the type system will not emit it a second time.
* @param property_id
* @param value
* @param pspec
*/
vfunc_set_property(property_id: number, value: GObject.Value | any, pspec: GObject.ParamSpec): void;
/**
* Disconnects a handler from an instance so it will not be called during any future or currently ongoing emissions of the signal it has been connected to.
* @param id Handler ID of the handler to be disconnected
*/
disconnect(id: number): void;
/**
* Sets multiple properties of an object at once. The properties argument should be a dictionary mapping property names to values.
* @param properties Object containing the properties to set
*/
set(properties: { [key: string]: any }): void;
/**
* Blocks a handler of an instance so it will not be called during any signal emissions
* @param id Handler ID of the handler to be blocked
*/
block_signal_handler(id: number): void;
/**
* Unblocks a handler so it will be called again during any signal emissions
* @param id Handler ID of the handler to be unblocked
*/
unblock_signal_handler(id: number): void;
/**
* Stops a signal's emission by the given signal name. This will prevent the default handler and any subsequent signal handlers from being invoked.
* @param detailedName Name of the signal to stop emission of
*/
stop_emission_by_name(detailedName: string): void;
}
namespace SshAskpass {
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
interaction: Gio.TlsInteraction;
}
}
/**
* When used as the setup function while spawning an ssh command like ssh-add
* or ssh, this allows callbacks for passwords on the provided interaction.
*/
class SshAskpass extends GObject.Object {
static $gtype: GObject.GType<SshAskpass>;
// Properties
/**
* The interaction used to prompt for passwords.
*/
get interaction(): Gio.TlsInteraction;
// Constructors
constructor(properties?: Partial<SshAskpass.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](interaction: Gio.TlsInteraction): SshAskpass;
// Static methods
/**
* Use this function as a callback setup function passed to g_spawn_sync(),
* g_spawn_async(), g_spawn_async_with_pipes().
* @param askpass a #GcrSshAskpass object
*/
static child_setup(askpass?: any | null): void;
// Methods
/**
* Get the interaction associated with this object.
* @returns the interaction
*/
get_interaction(): Gio.TlsInteraction;
}
namespace SystemPrompt {
// Constructor properties interface
interface ConstructorProps
extends GObject.Object.ConstructorProps,
Prompt.ConstructorProps,
Gio.AsyncInitable.ConstructorProps,
Gio.Initable.ConstructorProps {
bus_name: string;
busName: string;
secret_exchange: SecretExchange;
secretExchange: SecretExchange;
timeout_seconds: number;
timeoutSeconds: number;
}
}
/**
* A [iface`Prompt]` implementation which calls to the system prompter to
* display prompts in a system modal fashion.
*
* Since the system prompter usually only displays one prompt at a time, you
* may have to wait for the prompt to be displayed. Use [func`SystemPrompt`.open]
* or a related function to open a prompt. Since this can take a long time, you
* should always check that the prompt is still needed after it is opened. A
* previous prompt may have already provided the information needed and you
* may no longer need to prompt.
*
* Use [method`SystemPrompt`.close] to close the prompt when you're done with it.
*/
class SystemPrompt extends GObject.Object implements Prompt, Gio.AsyncInitable<SystemPrompt>, Gio.Initable {
static $gtype: GObject.GType<SystemPrompt>;
// Properties
/**
* The DBus bus name of the prompter to use for prompting, or %NULL
* for the default prompter.
*/
get bus_name(): string;
/**
* The DBus bus name of the prompter to use for prompting, or %NULL
* for the default prompter.
*/
get busName(): string;
/**
* The #GcrSecretExchange to use when transferring passwords. A default
* secret exchange will be used if this is not set.
*/
get secret_exchange(): SecretExchange;
set secret_exchange(val: SecretExchange);
/**
* The #GcrSecretExchange to use when transferring passwords. A default
* secret exchange will be used if this is not set.
*/
get secretExchange(): SecretExchange;
set secretExchange(val: SecretExchange);
/**
* The timeout in seconds to wait when opening the prompt.
*/
set timeout_seconds(val: number);
/**
* The timeout in seconds to wait when opening the prompt.
*/
set timeoutSeconds(val: number);
// Constructors
constructor(properties?: Partial<SystemPrompt.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
// Static methods
static error_get_domain(): GLib.Quark;
/**
* Opens a system prompt with the default prompter.
*
* Most system prompters only allow showing one prompt at a time, and if
* another prompt is shown then this method will block for up to
* `timeout_seconds` seconds. If `timeout_seconds` is equal to -1, then this
* will block indefinitely until the prompt can be opened. If `timeout_seconds`
* expires, then this function will fail with a %GCR_SYSTEM_PROMPT_IN_PROGRESS
* error.
* @param timeout_seconds the number of seconds to wait to access the prompt, or -1
* @param cancellable optional cancellation object
*/
static open(timeout_seconds: number, cancellable?: Gio.Cancellable | null): SystemPrompt;
/**
* Asynchronously open a system prompt with the default system prompter.
*
* Most system prompters only allow showing one prompt at a time, and if
* another prompt is shown then this method will block for up to
* `timeout_seconds` seconds. If `timeout_seconds` is equal to -1, then this
* will block indefinitely until the prompt can be opened. If `timeout_seconds`
* expires, then this operation will fail with a %GCR_SYSTEM_PROMPT_IN_PROGRESS
* error.
* @param timeout_seconds the number of seconds to wait to access the prompt, or -1
* @param cancellable optional cancellation object
* @param callback called when the operation completes
*/
static open_async(
timeout_seconds: number,
cancellable?: Gio.Cancellable | null,
callback?: Gio.AsyncReadyCallback<SystemPrompt> | null,
): void;
/**
* Complete an operation to asynchronously open a system prompt.
* @param result the asynchronous result
*/
static open_finish(result: Gio.AsyncResult): SystemPrompt;
/**
* Opens a system prompt. If prompter_name is %NULL, then the default
* system prompter is used.
*
* Most system prompters only allow showing one prompt at a time, and if
* another prompt is shown then this method will block for up to
* `timeout_seconds` seconds. If `timeout_seconds` is equal to -1, then this
* will block indefinitely until the prompt can be opened. If `timeout_seconds`
* expires, then this function will fail with a %GCR_SYSTEM_PROMPT_IN_PROGRESS
* error.
* @param prompter_name the prompter dbus name
* @param timeout_seconds the number of seconds to wait to access the prompt, or -1
* @param cancellable optional cancellation object
*/
static open_for_prompter(
prompter_name: string | null,
timeout_seconds: number,
cancellable?: Gio.Cancellable | null,
): SystemPrompt;
/**
* Opens a system prompt asynchronously. If prompter_name is %NULL, then the
* default system prompter is used.
*
* Most system prompters only allow showing one prompt at a time, and if
* another prompt is shown then this method will block for up to
* `timeout_seconds` seconds. If `timeout_seconds` is equal to -1, then this
* will block indefinitely until the prompt can be opened. If `timeout_seconds`
* expires, then this operation will fail with a %GCR_SYSTEM_PROMPT_IN_PROGRESS
* error.
* @param prompter_name the prompter D-Bus name
* @param timeout_seconds the number of seconds to wait to access the prompt, or -1
* @param cancellable optional cancellation object
* @param callback called when the operation completes
*/
static open_for_prompter_async(
prompter_name: string | null,
timeout_seconds: number,
cancellable?: Gio.Cancellable | null,
callback?: Gio.AsyncReadyCallback<SystemPrompt> | null,
): void;
// Methods
/**
* Close this prompt. After calling this function, no further prompts will
* succeed on this object. The prompt object is not unreferenced by this
* function, and you must unreference it once done.
*
* This call may block, use the gcr_system_prompt_close_async() to perform
* this action indefinitely.
*
* Whether or not this function returns %TRUE, the system prompt object is
* still closed and may not be further used.
* @param cancellable an optional cancellation object
* @returns whether close was cleanly completed
*/
close(cancellable?: Gio.Cancellable | null): boolean;
// Conflicted with Gcr.Prompt.close
close(...args: never[]): any;
/**
* Close this prompt asynchronously. After calling this function, no further
* methods may be called on this object. The prompt object is not unreferenced
* by this function, and you must unreference it once done.
*
* This call returns immediately and completes asynchronously.
* @param cancellable an optional cancellation object
*/
close_async(cancellable?: Gio.Cancellable | null): Promise<boolean>;
/**
* Close this prompt asynchronously. After calling this function, no further
* methods may be called on this object. The prompt object is not unreferenced
* by this function, and you must unreference it once done.
*
* This call returns immediately and completes asynchronously.
* @param cancellable an optional cancellation object
* @param callback called when the operation completes
*/
close_async(cancellable: Gio.Cancellable | null, callback: Gio.AsyncReadyCallback<this> | null): void;
/**
* Close this prompt asynchronously. After calling this function, no further
* methods may be called on this object. The prompt object is not unreferenced
* by this function, and you must unreference it once done.
*
* This call returns immediately and completes asynchronously.
* @param cancellable an optional cancellation object
* @param callback called when the operation completes
*/
close_async(
cancellable?: Gio.Cancellable | null,
callback?: Gio.AsyncReadyCallback<this> | null,
): Promise<boolean> | void;
/**
* Complete operation to close this prompt.
*
* Whether or not this function returns %TRUE, the system prompt object is
* still closed and may not be further used.
* @param result asynchronous operation result
* @returns whether close was cleanly completed
*/
close_finish(result: Gio.AsyncResult): boolean;
/**
* Get the current [class`SecretExchange]` used to transfer secrets in this prompt.
* @returns the secret exchange
*/
get_secret_exchange(): SecretExchange;
// Inherited properties
/**
* The string handle of the caller's window.
*
* The caller window indicates to the prompt which window is prompting the
* user. The prompt may choose to ignore this information or use it in whatever
* way it sees fit.
*
* In X11, this will be a stringified version of the XWindow handle; in
* Wayland this is the result of an export using the XDG foreign
* protocol.
*/
get caller_window(): string;
set caller_window(val: string);
/**
* The string handle of the caller's window.
*
* The caller window indicates to the prompt which window is prompting the
* user. The prompt may choose to ignore this information or use it in whatever
* way it sees fit.
*
* In X11, this will be a stringified version of the XWindow handle; in
* Wayland this is the result of an export using the XDG foreign
* protocol.
*/
get callerWindow(): string;
set callerWindow(val: string);
/**
* The label for the cancel button in the prompt.
*/
get cancel_label(): string;
set cancel_label(val: string);
/**
* The label for the cancel button in the prompt.
*/
get cancelLabel(): string;
set cancelLabel(val: string);
/**
* Whether the additional choice is chosen or not.
*
* The additional choice would have been setup using #GcrPrompt:choice-label.
*/
get choice_chosen(): boolean;
set choice_chosen(val: boolean);
/**
* Whether the additional choice is chosen or not.
*
* The additional choice would have been setup using #GcrPrompt:choice-label.
*/
get choiceChosen(): boolean;
set choiceChosen(val: boolean);
/**
* The label for the additional choice.
*
* If this is a non-%NULL value then an additional boolean choice will be
* displayed by the prompt allowing the user to select or deselect it.
*
* If %NULL, then no additional choice is displayed.
*
* The initial value of the choice can be set with #GcrPrompt:choice-chosen.
*/
get choice_label(): string;
set choice_label(val: string);
/**
* The label for the additional choice.
*
* If this is a non-%NULL value then an additional boolean choice will be
* displayed by the prompt allowing the user to select or deselect it.
*
* If %NULL, then no additional choice is displayed.
*
* The initial value of the choice can be set with #GcrPrompt:choice-chosen.
*/
get choiceLabel(): string;
set choiceLabel(val: string);
/**
* The label for the continue button in the prompt.
*/
get continue_label(): string;
set continue_label(val: string);
/**
* The label for the continue button in the prompt.
*/
get continueLabel(): string;
set continueLabel(val: string);
/**
* The detailed description of the prompt.
*
* A prompt implementation may choose not to display this detailed description.
* The prompt message should contain relevant information.
*/
get description(): string;
set description(val: string);
/**
* The prompt message for the user.
*
* A prompt implementation should always display this message.
*/
get message(): string;
set message(val: string);
/**
* Whether the prompt will prompt for a new password.
*
* This will cause the prompt implementation to ask the user to confirm the
* password and/or display other relevant user interface for creating a new
* password.
*/
get password_new(): boolean;
set password_new(val: boolean);
/**
* Whether the prompt will prompt for a new password.
*
* This will cause the prompt implementation to ask the user to confirm the
* password and/or display other relevant user interface for creating a new
* password.
*/
get passwordNew(): boolean;
set passwordNew(val: boolean);
/**
* Indication of the password strength.
*
* Prompts will return a zero value if the password is empty, and a value
* greater than zero if the password has any characters.
*
* This is only valid after a successful prompt for a password.
*/
get password_strength(): number;
/**
* Indication of the password strength.
*
* Prompts will return a zero value if the password is empty, and a value
* greater than zero if the password has any characters.
*
* This is only valid after a successful prompt for a password.
*/
get passwordStrength(): number;
/**
* The title of the prompt.
*
* A prompt implementation may choose not to display the prompt title. The
* #GcrPrompt:message should contain relevant information.
*/
get title(): string;
set title(val: string);
/**
* A prompt warning displayed on the prompt, or %NULL for no warning.
*
* This is a warning like "The password is incorrect." usually displayed to the
* user about a previous 'unsuccessful' prompt.
*/
get warning(): string;
set warning(val: string);
// Inherited methods
/**
* Prompts for confirmation asking a cancel/continue style question.
* Set the various properties on the prompt before calling this function to
* represent the question correctly.
*
* This method will block until the a response is returned from the prompter.
*
* %GCR_PROMPT_REPLY_CONTINUE will be returned if the user confirms the prompt. The
* return value will also be %GCR_PROMPT_REPLY_CANCEL if the user cancels or if
* an error occurs. Check the `error` argument to tell the difference.
* @param cancellable optional cancellation object
* @returns the reply from the prompt
*/
confirm(cancellable?: Gio.Cancellable | null): PromptReply;
/**
* Prompts for confirmation asking a cancel/continue style question.
* Set the various properties on the prompt before calling this method to
* represent the question correctly.
*
* This method will return immediately and complete asynchronously.
* @param cancellable optional cancellation object
*/
confirm_async(cancellable?: Gio.Cancellable | null): Promise<PromptReply>;
/**
* Prompts for confirmation asking a cancel/continue style question.
* Set the various properties on the prompt before calling this method to
* represent the question correctly.
*
* This method will return immediately and complete asynchronously.
* @param cancellable optional cancellation object
* @param callback called when the operation completes
*/
confirm_async(cancellable: Gio.Cancellable | null, callback: Gio.AsyncReadyCallback<this> | null): void;
/**
* Prompts for confirmation asking a cancel/continue style question.
* Set the various properties on the prompt before calling this method to
* represent the question correctly.
*
* This method will return immediately and complete asynchronously.
* @param cancellable optional cancellation object
* @param callback called when the operation completes
*/
confirm_async(
cancellable?: Gio.Cancellable | null,
callback?: Gio.AsyncReadyCallback<this> | null,
): Promise<PromptReply> | void;
/**
* Complete an operation to prompt for confirmation.
*
* %GCR_PROMPT_REPLY_CONTINUE will be returned if the user confirms the prompt. The
* return value will also be %GCR_PROMPT_REPLY_CANCEL if the user cancels or if
* an error occurs. Check the `error` argument to tell the difference.
* @param result asynchronous result passed to callback
* @returns the reply from the prompt
*/
confirm_finish(result: Gio.AsyncResult): PromptReply;
/**
* Prompts for confirmation asking a cancel/continue style question.
* Set the various properties on the prompt before calling this function to
* represent the question correctly.
*
* This method will block until the a response is returned from the prompter
* and will run a main loop similar to a `gtk_dialog_run()`. The application
* will remain responsive but care must be taken to handle reentrancy issues.
*
* %GCR_PROMPT_REPLY_CONTINUE will be returned if the user confirms the prompt. The
* return value will also be %GCR_PROMPT_REPLY_CANCEL if the user cancels or if
* an error occurs. Check the `error` argument to tell the difference.
* @param cancellable optional cancellation object
* @returns the reply from the prompt
*/
confirm_run(cancellable?: Gio.Cancellable | null): PromptReply;
/**
* Get the string handle of the caller's window.
*
* The caller window indicates to the prompt which window is prompting the
* user. The prompt may choose to ignore this information or use it in whatever
* way it sees fit.
* @returns a newly allocated string containing the string handle of the window.
*/
get_caller_window(): string;
/**
* Get the label for the cancel button.
*
* This is the button that results in a %GCR_PROMPT_REPLY_CANCEL reply
* from the prompt.
* @returns a newly allocated string containing the label
*/
get_cancel_label(): string;
/**
* Get whether the additional choice was chosen or not.
*
* The additional choice would have been setup using
* gcr_prompt_set_choice_label().
* @returns whether chosen
*/
get_choice_chosen(): boolean;
/**
* Get the label for the additional choice.
*
* This will be %NULL if no additional choice is being displayed.
* @returns a newly allocated string containing the additional choice or %NULL
*/
get_choice_label(): string;
/**
* Get the label for the continue button.
*
* This is the button that results in a %GCR_PROMPT_REPLY_CONTINUE reply
* from the prompt.
* @returns a newly allocated string containing the label
*/
get_continue_label(): string;
/**
* Get the detailed description of the prompt.
*
* A prompt implementation may choose not to display this detailed description.
* The prompt message should contain relevant information.
* @returns a newly allocated string containing the detailed description of the prompt
*/
get_description(): string;
/**
* Gets the prompt message for the user.
*
* A prompt implementation should always display this message.
* @returns a newly allocated string containing the detailed description of the prompt
*/
get_message(): string;
/**
* Get whether the prompt will prompt for a new password.
*
* This will cause the prompt implementation to ask the user to confirm the
* password and/or display other relevant user interface for creating a new
* password.
* @returns whether in new password mode or not
*/
get_password_new(): boolean;
/**
* Get indication of the password strength.
*
* Prompts will return a zero value if the password is empty, and a value
* greater than zero if the password has any characters.
*
* This is only valid after a successful prompt for a password.
* @returns zero if the password is empty, greater than zero if not
*/
get_password_strength(): number;
/**
* Gets the title of the prompt.
*
* A prompt implementation may choose not to display the prompt title. The
* prompt message should contain relevant information.
* @returns a newly allocated string containing the prompt title.
*/
get_title(): string;
/**
* Get a prompt warning displayed on the prompt.
*
* This is a warning like "The password is incorrect." usually displayed to the
* user about a previous 'unsuccessful' prompt.
*
* If this string is %NULL then no warning is displayed.
* @returns a newly allocated string containing the prompt warning, or %NULL if no warning
*/
get_warning(): string;
/**
* Prompts for password. Set the various properties on the prompt before calling
* this method to explain which password should be entered.
*
* This method will block until the a response is returned from the prompter.
*
* A password will be returned if the user enters a password successfully.
* The returned password is valid until the next time a method is called
* to display another prompt.
*
* %NULL will be returned if the user cancels or if an error occurs. Check the
* `error` argument to tell the difference.
* @param cancellable optional cancellation object
* @returns the password owned by the prompt, or %NULL
*/
password(cancellable?: Gio.Cancellable | null): string;
/**
* Prompts for password. Set the various properties on the prompt before calling
* this method to explain which password should be entered.
*
* This method will return immediately and complete asynchronously.
* @param cancellable optional cancellation object
*/
password_async(cancellable?: Gio.Cancellable | null): Promise<string>;
/**
* Prompts for password. Set the various properties on the prompt before calling
* this method to explain which password should be entered.
*
* This method will return immediately and complete asynchronously.
* @param cancellable optional cancellation object
* @param callback called when the operation completes
*/
password_async(cancellable: Gio.Cancellable | null, callback: Gio.AsyncReadyCallback<this> | null): void;
/**
* Prompts for password. Set the various properties on the prompt before calling
* this method to explain which password should be entered.
*
* This method will return immediately and complete asynchronously.
* @param cancellable optional cancellation object
* @param callback called when the operation completes
*/
password_async(
cancellable?: Gio.Cancellable | null,
callback?: Gio.AsyncReadyCallback<this> | null,
): Promise<string> | void;
/**
* Complete an operation to prompt for a password.
*
* A password will be returned if the user enters a password successfully.
* The returned password is valid until the next time a method is called
* to display another prompt.
*
* %NULL will be returned if the user cancels or if an error occurs. Check the
* `error` argument to tell the difference.
* @param result asynchronous result passed to callback
* @returns the password owned by the prompt, or %NULL
*/
password_finish(result: Gio.AsyncResult): string;
/**
* Prompts for password. Set the various properties on the prompt before calling
* this method to explain which password should be entered.
*
* This method will block until the a response is returned from the prompter
* and will run a main loop similar to a gtk_dialog_run(). The application
* will remain responsive but care must be taken to handle reentrancy issues.
*
* A password will be returned if the user enters a password successfully.
* The returned password is valid until the next time a method is called
* to display another prompt.
*
* %NULL will be returned if the user cancels or if an error occurs. Check the
* `error` argument to tell the difference.
* @param cancellable optional cancellation object
* @returns the password owned by the prompt, or %NULL
*/
password_run(cancellable?: Gio.Cancellable | null): string;
/**
* Reset the contents and properties of the prompt.
*/
reset(): void;
/**
* Set the string handle of the caller's window.
*
* The caller window indicates to the prompt which window is prompting the
* user. The prompt may choose to ignore this information or use it in whatever
* way it sees fit.
* @param window_id the window id
*/
set_caller_window(window_id: string): void;
/**
* Set the label for the continue button.
*
* This is the button that results in a %GCR_PROMPT_REPLY_CANCEL reply
* from the prompt.
* @param cancel_label the label
*/
set_cancel_label(cancel_label: string): void;
/**
* Set whether the additional choice is chosen or not.
*
* The additional choice should be set up using gcr_prompt_set_choice_label().
* @param chosen whether chosen
*/
set_choice_chosen(chosen: boolean): void;
/**
* Set the label for the additional choice.
*
* If this is a non-%NULL value then an additional boolean choice will be
* displayed by the prompt allowing the user to select or deselect it.
*
* The initial value of the choice can be set with the
* gcr_prompt_set_choice_label() method.
*
* If this is %NULL, then no additional choice is being displayed.
* @param choice_label the additional choice or %NULL
*/
set_choice_label(choice_label?: string | null): void;
/**
* Set the label for the continue button.
*
* This is the button that results in a %GCR_PROMPT_REPLY_CONTINUE reply
* from the prompt.
* @param continue_label the label
*/
set_continue_label(continue_label: string): void;
/**
* Set the detailed description of the prompt.
*
* A prompt implementation may choose not to display this detailed description.
* Use gcr_prompt_set_message() to set a general message containing relevant
* information.
* @param description the detailed description
*/
set_description(description: string): void;
/**
* Sets the prompt message for the user.
*
* A prompt implementation should always display this message.
* @param message the prompt message
*/
set_message(message: string): void;
/**
* Set whether the prompt will prompt for a new password.
*
* This will cause the prompt implementation to ask the user to confirm the
* password and/or display other relevant user interface for creating a new
* password.
* @param new_password whether in new password mode or not
*/
set_password_new(new_password: boolean): void;
/**
* Sets the title of the prompt.
*
* A prompt implementation may choose not to display the prompt title. The
* prompt message should contain relevant information.
* @param title the prompt title
*/
set_title(title: string): void;
/**
* Set a prompt warning displayed on the prompt.
*
* This is a warning like "The password is incorrect." usually displayed to the
* user about a previous 'unsuccessful' prompt.
*
* If this string is %NULL then no warning is displayed.
* @param warning the warning or %NULL
*/
set_warning(warning?: string | null): void;
/**
* close a prompt
*/
vfunc_prompt_close(): void;
/**
* Prompts for confirmation asking a cancel/continue style question.
* Set the various properties on the prompt before calling this method to
* represent the question correctly.
*
* This method will return immediately and complete asynchronously.
* @param cancellable optional cancellation object
* @param callback called when the operation completes
*/
vfunc_prompt_confirm_async(
cancellable?: Gio.Cancellable | null,
callback?: Gio.AsyncReadyCallback<this> | null,
): void;
/**
* Complete an operation to prompt for confirmation.
*
* %GCR_PROMPT_REPLY_CONTINUE will be returned if the user confirms the prompt. The
* return value will also be %GCR_PROMPT_REPLY_CANCEL if the user cancels or if
* an error occurs. Check the `error` argument to tell the difference.
* @param result asynchronous result passed to callback
*/
vfunc_prompt_confirm_finish(result: Gio.AsyncResult): PromptReply;
/**
* Prompts for password. Set the various properties on the prompt before calling
* this method to explain which password should be entered.
*
* This method will return immediately and complete asynchronously.
* @param cancellable optional cancellation object
* @param callback called when the operation completes
*/
vfunc_prompt_password_async(
cancellable?: Gio.Cancellable | null,
callback?: Gio.AsyncReadyCallback<this> | null,
): void;
/**
* Complete an operation to prompt for a password.
*
* A password will be returned if the user enters a password successfully.
* The returned password is valid until the next time a method is called
* to display another prompt.
*
* %NULL will be returned if the user cancels or if an error occurs. Check the
* `error` argument to tell the difference.
* @param result asynchronous result passed to callback
*/
vfunc_prompt_password_finish(result: Gio.AsyncResult): string;
/**
* Starts asynchronous initialization of the object implementing the
* interface. This must be done before any real use of the object after
* initial construction. If the object also implements #GInitable you can
* optionally call g_initable_init() instead.
*
* This method is intended for language bindings. If writing in C,
* g_async_initable_new_async() should typically be used instead.
*
* When the initialization is finished, `callback` will be called. You can
* then call g_async_initable_init_finish() to get the result of the
* initialization.
*
* Implementations may also support cancellation. If `cancellable` is not
* %NULL, then initialization can be cancelled by triggering the cancellable
* object from another thread. If the operation was cancelled, the error
* %G_IO_ERROR_CANCELLED will be returned. If `cancellable` is not %NULL, and
* the object doesn't support cancellable initialization, the error
* %G_IO_ERROR_NOT_SUPPORTED will be returned.
*
* As with #GInitable, if the object is not initialized, or initialization
* returns with an error, then all operations on the object except
* g_object_ref() and g_object_unref() are considered to be invalid, and
* have undefined behaviour. They will often fail with g_critical() or
* g_warning(), but this must not be relied on.
*
* Callers should not assume that a class which implements #GAsyncInitable can
* be initialized multiple times; for more information, see g_initable_init().
* If a class explicitly supports being initialized multiple times,
* implementation requires yielding all subsequent calls to init_async() on the
* results of the first call.
*
* For classes that also support the #GInitable interface, the default
* implementation of this method will run the g_initable_init() function
* in a thread, so if you want to support asynchronous initialization via
* threads, just implement the #GAsyncInitable interface without overriding
* any interface methods.
* @param io_priority the [I/O priority](iface.AsyncResult.html#io-priority) of the operation
* @param cancellable optional #GCancellable object, %NULL to ignore.
*/
init_async(io_priority: number, cancellable?: Gio.Cancellable | null): Promise<boolean>;
/**
* Starts asynchronous initialization of the object implementing the
* interface. This must be done before any real use of the object after
* initial construction. If the object also implements #GInitable you can
* optionally call g_initable_init() instead.
*
* This method is intended for language bindings. If writing in C,
* g_async_initable_new_async() should typically be used instead.
*
* When the initialization is finished, `callback` will be called. You can
* then call g_async_initable_init_finish() to get the result of the
* initialization.
*
* Implementations may also support cancellation. If `cancellable` is not
* %NULL, then initialization can be cancelled by triggering the cancellable
* object from another thread. If the operation was cancelled, the error
* %G_IO_ERROR_CANCELLED will be returned. If `cancellable` is not %NULL, and
* the object doesn't support cancellable initialization, the error
* %G_IO_ERROR_NOT_SUPPORTED will be returned.
*
* As with #GInitable, if the object is not initialized, or initialization
* returns with an error, then all operations on the object except
* g_object_ref() and g_object_unref() are considered to be invalid, and
* have undefined behaviour. They will often fail with g_critical() or
* g_warning(), but this must not be relied on.
*
* Callers should not assume that a class which implements #GAsyncInitable can
* be initialized multiple times; for more information, see g_initable_init().
* If a class explicitly supports being initialized multiple times,
* implementation requires yielding all subsequent calls to init_async() on the
* results of the first call.
*
* For classes that also support the #GInitable interface, the default
* implementation of this method will run the g_initable_init() function
* in a thread, so if you want to support asynchronous initialization via
* threads, just implement the #GAsyncInitable interface without overriding
* any interface methods.
* @param io_priority the [I/O priority](iface.AsyncResult.html#io-priority) of the operation
* @param cancellable optional #GCancellable object, %NULL to ignore.
* @param callback a #GAsyncReadyCallback to call when the request is satisfied
*/
init_async(
io_priority: number,
cancellable: Gio.Cancellable | null,
callback: Gio.AsyncReadyCallback<this> | null,
): void;
/**
* Starts asynchronous initialization of the object implementing the
* interface. This must be done before any real use of the object after
* initial construction. If the object also implements #GInitable you can
* optionally call g_initable_init() instead.
*
* This method is intended for language bindings. If writing in C,
* g_async_initable_new_async() should typically be used instead.
*
* When the initialization is finished, `callback` will be called. You can
* then call g_async_initable_init_finish() to get the result of the
* initialization.
*
* Implementations may also support cancellation. If `cancellable` is not
* %NULL, then initialization can be cancelled by triggering the cancellable
* object from another thread. If the operation was cancelled, the error
* %G_IO_ERROR_CANCELLED will be returned. If `cancellable` is not %NULL, and
* the object doesn't support cancellable initialization, the error
* %G_IO_ERROR_NOT_SUPPORTED will be returned.
*
* As with #GInitable, if the object is not initialized, or initialization
* returns with an error, then all operations on the object except
* g_object_ref() and g_object_unref() are considered to be invalid, and
* have undefined behaviour. They will often fail with g_critical() or
* g_warning(), but this must not be relied on.
*
* Callers should not assume that a class which implements #GAsyncInitable can
* be initialized multiple times; for more information, see g_initable_init().
* If a class explicitly supports being initialized multiple times,
* implementation requires yielding all subsequent calls to init_async() on the
* results of the first call.
*
* For classes that also support the #GInitable interface, the default
* implementation of this method will run the g_initable_init() function
* in a thread, so if you want to support asynchronous initialization via
* threads, just implement the #GAsyncInitable interface without overriding
* any interface methods.
* @param io_priority the [I/O priority](iface.AsyncResult.html#io-priority) of the operation
* @param cancellable optional #GCancellable object, %NULL to ignore.
* @param callback a #GAsyncReadyCallback to call when the request is satisfied
*/
init_async(
io_priority: number,
cancellable?: Gio.Cancellable | null,
callback?: Gio.AsyncReadyCallback<this> | null,
): Promise<boolean> | void;
/**
* Finishes asynchronous initialization and returns the result.
* See g_async_initable_init_async().
* @param res a #GAsyncResult.
* @returns %TRUE if successful. If an error has occurred, this function will return %FALSE and set @error appropriately if present.
*/
init_finish(res: Gio.AsyncResult): boolean;
/**
* Finishes the async construction for the various g_async_initable_new
* calls, returning the created object or %NULL on error.
* @param res the #GAsyncResult from the callback
* @returns a newly created #GObject, or %NULL on error. Free with g_object_unref().
*/
new_finish(res: Gio.AsyncResult): SystemPrompt;
/**
* Starts asynchronous initialization of the object implementing the
* interface. This must be done before any real use of the object after
* initial construction. If the object also implements #GInitable you can
* optionally call g_initable_init() instead.
*
* This method is intended for language bindings. If writing in C,
* g_async_initable_new_async() should typically be used instead.
*
* When the initialization is finished, `callback` will be called. You can
* then call g_async_initable_init_finish() to get the result of the
* initialization.
*
* Implementations may also support cancellation. If `cancellable` is not
* %NULL, then initialization can be cancelled by triggering the cancellable
* object from another thread. If the operation was cancelled, the error
* %G_IO_ERROR_CANCELLED will be returned. If `cancellable` is not %NULL, and
* the object doesn't support cancellable initialization, the error
* %G_IO_ERROR_NOT_SUPPORTED will be returned.
*
* As with #GInitable, if the object is not initialized, or initialization
* returns with an error, then all operations on the object except
* g_object_ref() and g_object_unref() are considered to be invalid, and
* have undefined behaviour. They will often fail with g_critical() or
* g_warning(), but this must not be relied on.
*
* Callers should not assume that a class which implements #GAsyncInitable can
* be initialized multiple times; for more information, see g_initable_init().
* If a class explicitly supports being initialized multiple times,
* implementation requires yielding all subsequent calls to init_async() on the
* results of the first call.
*
* For classes that also support the #GInitable interface, the default
* implementation of this method will run the g_initable_init() function
* in a thread, so if you want to support asynchronous initialization via
* threads, just implement the #GAsyncInitable interface without overriding
* any interface methods.
* @param io_priority the [I/O priority](iface.AsyncResult.html#io-priority) of the operation
* @param cancellable optional #GCancellable object, %NULL to ignore.
* @param callback a #GAsyncReadyCallback to call when the request is satisfied
*/
vfunc_init_async(
io_priority: number,
cancellable?: Gio.Cancellable | null,
callback?: Gio.AsyncReadyCallback<this> | null,
): void;
/**
* Finishes asynchronous initialization and returns the result.
* See g_async_initable_init_async().
* @param res a #GAsyncResult.
*/
vfunc_init_finish(res: Gio.AsyncResult): boolean;
/**
* Initializes the object implementing the interface.
*
* This method is intended for language bindings. If writing in C,
* g_initable_new() should typically be used instead.
*
* The object must be initialized before any real use after initial
* construction, either with this function or g_async_initable_init_async().
*
* Implementations may also support cancellation. If `cancellable` is not %NULL,
* then initialization can be cancelled by triggering the cancellable object
* from another thread. If the operation was cancelled, the error
* %G_IO_ERROR_CANCELLED will be returned. If `cancellable` is not %NULL and
* the object doesn't support cancellable initialization the error
* %G_IO_ERROR_NOT_SUPPORTED will be returned.
*
* If the object is not initialized, or initialization returns with an
* error, then all operations on the object except g_object_ref() and
* g_object_unref() are considered to be invalid, and have undefined
* behaviour. See the [description][iface`Gio`.Initable#description] for more details.
*
* Callers should not assume that a class which implements #GInitable can be
* initialized multiple times, unless the class explicitly documents itself as
* supporting this. Generally, a class implementation of init() can assume
* (and assert) that it will only be called once. Previously, this documentation
* recommended all #GInitable implementations should be idempotent; that
* recommendation was relaxed in GLib 2.54.
*
* If a class explicitly supports being initialized multiple times, it is
* recommended that the method is idempotent: multiple calls with the same
* arguments should return the same results. Only the first call initializes
* the object; further calls return the result of the first call.
*
* One reason why a class might need to support idempotent initialization is if
* it is designed to be used via the singleton pattern, with a
* #GObjectClass.constructor that sometimes returns an existing instance.
* In this pattern, a caller would expect to be able to call g_initable_init()
* on the result of g_object_new(), regardless of whether it is in fact a new
* instance.
* @param cancellable optional #GCancellable object, %NULL to ignore.
* @returns %TRUE if successful. If an error has occurred, this function will return %FALSE and set @error appropriately if present.
*/
init(cancellable?: Gio.Cancellable | null): boolean;
/**
* Initializes the object implementing the interface.
*
* This method is intended for language bindings. If writing in C,
* g_initable_new() should typically be used instead.
*
* The object must be initialized before any real use after initial
* construction, either with this function or g_async_initable_init_async().
*
* Implementations may also support cancellation. If `cancellable` is not %NULL,
* then initialization can be cancelled by triggering the cancellable object
* from another thread. If the operation was cancelled, the error
* %G_IO_ERROR_CANCELLED will be returned. If `cancellable` is not %NULL and
* the object doesn't support cancellable initialization the error
* %G_IO_ERROR_NOT_SUPPORTED will be returned.
*
* If the object is not initialized, or initialization returns with an
* error, then all operations on the object except g_object_ref() and
* g_object_unref() are considered to be invalid, and have undefined
* behaviour. See the [description][iface`Gio`.Initable#description] for more details.
*
* Callers should not assume that a class which implements #GInitable can be
* initialized multiple times, unless the class explicitly documents itself as
* supporting this. Generally, a class implementation of init() can assume
* (and assert) that it will only be called once. Previously, this documentation
* recommended all #GInitable implementations should be idempotent; that
* recommendation was relaxed in GLib 2.54.
*
* If a class explicitly supports being initialized multiple times, it is
* recommended that the method is idempotent: multiple calls with the same
* arguments should return the same results. Only the first call initializes
* the object; further calls return the result of the first call.
*
* One reason why a class might need to support idempotent initialization is if
* it is designed to be used via the singleton pattern, with a
* #GObjectClass.constructor that sometimes returns an existing instance.
* In this pattern, a caller would expect to be able to call g_initable_init()
* on the result of g_object_new(), regardless of whether it is in fact a new
* instance.
* @param cancellable optional #GCancellable object, %NULL to ignore.
*/
vfunc_init(cancellable?: Gio.Cancellable | null): boolean;
/**
* Creates a binding between `source_property` on `source` and `target_property`
* on `target`.
*
* Whenever the `source_property` is changed the `target_property` is
* updated using the same value. For instance:
*
*
* ```c
* g_object_bind_property (action, "active", widget, "sensitive", 0);
* ```
*
*
* Will result in the "sensitive" property of the widget #GObject instance to be
* updated with the same value of the "active" property of the action #GObject
* instance.
*
* If `flags` contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
* if `target_property` on `target` changes then the `source_property` on `source`
* will be updated as well.
*
* The binding will automatically be removed when either the `source` or the
* `target` instances are finalized. To remove the binding without affecting the
* `source` and the `target` you can just call g_object_unref() on the returned
* #GBinding instance.
*
* Removing the binding by calling g_object_unref() on it must only be done if
* the binding, `source` and `target` are only used from a single thread and it
* is clear that both `source` and `target` outlive the binding. Especially it
* is not safe to rely on this if the binding, `source` or `target` can be
* finalized from different threads. Keep another reference to the binding and
* use g_binding_unbind() instead to be on the safe side.
*
* A #GObject can have multiple bindings.
* @param source_property the property on @source to bind
* @param target the target #GObject
* @param target_property the property on @target to bind
* @param flags flags to pass to #GBinding
* @returns the #GBinding instance representing the binding between the two #GObject instances. The binding is released whenever the #GBinding reference count reaches zero.
*/
bind_property(
source_property: string,
target: GObject.Object,
target_property: string,
flags: GObject.BindingFlags | null,
): GObject.Binding;
/**
* Complete version of g_object_bind_property().
*
* Creates a binding between `source_property` on `source` and `target_property`
* on `target,` allowing you to set the transformation functions to be used by
* the binding.
*
* If `flags` contains %G_BINDING_BIDIRECTIONAL then the binding will be mutual:
* if `target_property` on `target` changes then the `source_property` on `source`
* will be updated as well. The `transform_from` function is only used in case
* of bidirectional bindings, otherwise it will be ignored
*
* The binding will automatically be removed when either the `source` or the
* `target` instances are finalized. This will release the reference that is
* being held on the #GBinding instance; if you want to hold on to the
* #GBinding instance, you will need to hold a reference to it.
*
* To remove the binding, call g_binding_unbind().
*
* A #GObject can have multiple bindings.
*
* The same `user_data` parameter will be used for both `transform_to`
* and `transform_from` transformation functions; the `notify` function will
* be called once, when the binding is removed. If you need different data
* for each transformation function, please use
* g_object_bind_property_with_closures() instead.
* @param source_property the property on @source to bind
* @param target the target #GObject
* @param target_property the property on @target to bind
* @param flags flags to pass to #GBinding
* @param transform_to the transformation function from the @source to the @target, or %NULL to use the default
* @param transform_from the transformation function from the @target to the @source, or %NULL to use the default
* @param notify a function to call when disposing the binding, to free resources used by the transformation functions, or %NULL if not required
* @returns the #GBinding instance representing the binding between the two #GObject instances. The binding is released whenever the #GBinding reference count reaches zero.
*/
bind_property_full(
source_property: string,
target: GObject.Object,
target_property: string,
flags: GObject.BindingFlags | null,
transform_to?: GObject.BindingTransformFunc | null,
transform_from?: GObject.BindingTransformFunc | null,
notify?: GLib.DestroyNotify | null,
): GObject.Binding;
// Conflicted with GObject.Object.bind_property_full
bind_property_full(...args: never[]): any;
/**
* This function is intended for #GObject implementations to re-enforce
* a [floating][floating-ref] object reference. Doing this is seldom
* required: all #GInitiallyUnowneds are created with a floating reference
* which usually just needs to be sunken by calling g_object_ref_sink().
*/
force_floating(): void;
/**
* Increases the freeze count on `object`. If the freeze count is
* non-zero, the emission of "notify" signals on `object` is
* stopped. The signals are queued until the freeze count is decreased
* to zero. Duplicate notifications are squashed so that at most one
* #GObject::notify signal is emitted for each property modified while the
* object is frozen.
*
* This is necessary for accessors that modify multiple properties to prevent
* premature notification while the object is still being modified.
*/
freeze_notify(): void;
/**
* Gets a named field from the objects table of associations (see g_object_set_data()).
* @param key name of the key for that association
* @returns the data if found, or %NULL if no such data exists.
*/
get_data(key: string): any | null;
/**
* Gets a property of an object.
*
* The value can be:
* - an empty GObject.Value initialized by G_VALUE_INIT, which will be automatically initialized with the expected type of the property (since GLib 2.60)
* - a GObject.Value initialized with the expected type of the property
* - a GObject.Value initialized with a type to which the expected type of the property can be transformed
*
* In general, a copy is made of the property contents and the caller is responsible for freeing the memory by calling GObject.Value.unset.
*
* Note that GObject.Object.get_property is really intended for language bindings, GObject.Object.get is much more convenient for C programming.
* @param property_name The name of the property to get
* @param value Return location for the property value. Can be an empty GObject.Value initialized by G_VALUE_INIT (auto-initialized with expected type since GLib 2.60), a GObject.Value initialized with the expected property type, or a GObject.Value initialized with a transformable type
*/
get_property(property_name: string, value: GObject.Value | any): any;
/**
* This function gets back user data pointers stored via
* g_object_set_qdata().
* @param quark A #GQuark, naming the user data pointer
* @returns The user data pointer set, or %NULL
*/
get_qdata(quark: GLib.Quark): any | null;
/**
* Gets `n_properties` properties for an `object`.
* Obtained properties will be set to `values`. All properties must be valid.
* Warnings will be emitted and undefined behaviour may result if invalid
* properties are passed in.
* @param names the names of each property to get
* @param values the values of each property to get
*/
getv(names: string[], values: (GObject.Value | any)[]): void;
/**
* Checks whether `object` has a [floating][floating-ref] reference.
* @returns %TRUE if @object has a floating reference
*/
is_floating(): boolean;
/**
* Emits a "notify" signal for the property `property_name` on `object`.
*
* When possible, eg. when signaling a property change from within the class
* that registered the property, you should use g_object_notify_by_pspec()
* instead.
*
* Note that emission of the notify signal may be blocked with
* g_object_freeze_notify(). In this case, the signal emissions are queued
* and will be emitted (in reverse order) when g_object_thaw_notify() is
* called.
* @param property_name the name of a property installed on the class of @object.
*/
notify(property_name: string): void;
/**
* Emits a "notify" signal for the property specified by `pspec` on `object`.
*
* This function omits the property name lookup, hence it is faster than
* g_object_notify().
*
* One way to avoid using g_object_notify() from within the
* class that registered the properties, and using g_object_notify_by_pspec()
* instead, is to store the GParamSpec used with
* g_object_class_install_property() inside a static array, e.g.:
*
*
* ```c
* typedef enum
* {
* PROP_FOO = 1,
* PROP_LAST
* } MyObjectProperty;
*
* static GParamSpec *properties[PROP_LAST];
*
* static void
* my_object_class_init (MyObjectClass *klass)
* {
* properties[PROP_FOO] = g_param_spec_int ("foo", NULL, NULL,
* 0, 100,
* 50,
* G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
* g_object_class_install_property (gobject_class,
* PROP_FOO,
* properties[PROP_FOO]);
* }
* ```
*
*
* and then notify a change on the "foo" property with:
*
*
* ```c
* g_object_notify_by_pspec (self, properties[PROP_FOO]);
* ```
*
* @param pspec the #GParamSpec of a property installed on the class of @object.
*/
notify_by_pspec(pspec: GObject.ParamSpec): void;
/**
* Increases the reference count of `object`.
*
* Since GLib 2.56, if `GLIB_VERSION_MAX_ALLOWED` is 2.56 or greater, the type
* of `object` will be propagated to the return type (using the GCC typeof()
* extension), so any casting the caller needs to do on the return type must be
* explicit.
* @returns the same @object
*/
ref(): GObject.Object;
/**
* Increase the reference count of `object,` and possibly remove the
* [floating][floating-ref] reference, if `object` has a floating reference.
*
* In other words, if the object is floating, then this call "assumes
* ownership" of the floating reference, converting it to a normal
* reference by clearing the floating flag while leaving the reference
* count unchanged. If the object is not floating, then this call
* adds a new normal reference increasing the reference count by one.
*
* Since GLib 2.56, the type of `object` will be propagated to the return type
* under the same conditions as for g_object_ref().
* @returns @object
*/
ref_sink(): GObject.Object;
/**
* Releases all references to other objects. This can be used to break
* reference cycles.
*
* This function should only be called from object system implementations.
*/
run_dispose(): void;
/**
* Each object carries around a table of associations from
* strings to pointers. This function lets you set an association.
*
* If the object already had an association with that name,
* the old association will be destroyed.
*
* Internally, the `key` is converted to a #GQuark using g_quark_from_string().
* This means a copy of `key` is kept permanently (even after `object` has been
* finalized) — so it is recommended to only use a small, bounded set of values
* for `key` in your program, to avoid the #GQuark storage growing unbounded.
* @param key name of the key
* @param data data to associate with that key
*/
set_data(key: string, data?: any | null): void;
/**
* Sets a property on an object.
* @param property_name The name of the property to set
* @param value The value to set the property to
*/
set_property(property_name: string, value: GObject.Value | any): void;
/**
* Remove a specified datum from the object's data associations,
* without invoking the association's destroy handler.
* @param key name of the key
* @returns the data if found, or %NULL if no such data exists.
*/
steal_data(key: string): any | null;
/**
* This function gets back user data pointers stored via
* g_object_set_qdata() and removes the `data` from object
* without invoking its destroy() function (if any was
* set).
* Usually, calling this function is only required to update
* user data pointers with a destroy notifier, for example:
*
* ```c
* void
* object_add_to_user_list (GObject *object,
* const gchar *new_string)
* {
* // the quark, naming the object data
* GQuark quark_string_list = g_quark_from_static_string ("my-string-list");
* // retrieve the old string list
* GList *list = g_object_steal_qdata (object, quark_string_list);
*
* // prepend new string
* list = g_list_prepend (list, g_strdup (new_string));
* // this changed 'list', so we need to set it again
* g_object_set_qdata_full (object, quark_string_list, list, free_string_list);
* }
* static void
* free_string_list (gpointer data)
* {
* GList *node, *list = data;
*
* for (node = list; node; node = node->next)
* g_free (node->data);
* g_list_free (list);
* }
* ```
*
* Using g_object_get_qdata() in the above example, instead of
* g_object_steal_qdata() would have left the destroy function set,
* and thus the partial string list would have been freed upon
* g_object_set_qdata_full().
* @param quark A #GQuark, naming the user data pointer
* @returns The user data pointer set, or %NULL
*/
steal_qdata(quark: GLib.Quark): any | null;
/**
* Reverts the effect of a previous call to
* g_object_freeze_notify(). The freeze count is decreased on `object`
* and when it reaches zero, queued "notify" signals are emitted.
*
* Duplicate notifications for each property are squashed so that at most one
* #GObject::notify signal is emitted for each property, in the reverse order
* in which they have been queued.
*
* It is an error to call this function when the freeze count is zero.
*/
thaw_notify(): void;
/**
* Decreases the reference count of `object`. When its reference count
* drops to 0, the object is finalized (i.e. its memory is freed).
*
* If the pointer to the #GObject may be reused in future (for example, if it is
* an instance variable of another object), it is recommended to clear the
* pointer to %NULL rather than retain a dangling pointer to a potentially
* invalid #GObject instance. Use g_clear_object() for this.
*/
unref(): void;
/**
* This function essentially limits the life time of the `closure` to
* the life time of the object. That is, when the object is finalized,
* the `closure` is invalidated by calling g_closure_invalidate() on
* it, in order to prevent invocations of the closure with a finalized
* (nonexisting) object. Also, g_object_ref() and g_object_unref() are
* added as marshal guards to the `closure,` to ensure that an extra
* reference count is held on `object` during invocation of the
* `closure`. Usually, this function will be called on closures that
* use this `object` as closure data.
* @param closure #GClosure to watch
*/
watch_closure(closure: GObject.Closure): void;
/**
* the `constructed` function is called by g_object_new() as the
* final step of the object creation process. At the point of the call, all
* construction properties have been set on the object. The purpose of this
* call is to allow for object initialisation steps that can only be performed
* after construction properties have been set. `constructed` implementors
* should chain up to the `constructed` call of their parent class to allow it
* to complete its initialisation.
*/
vfunc_constructed(): void;
/**
* emits property change notification for a bunch
* of properties. Overriding `dispatch_properties_changed` should be rarely
* needed.
* @param n_pspecs
* @param pspecs
*/
vfunc_dispatch_properties_changed(n_pspecs: number, pspecs: GObject.ParamSpec): void;
/**
* the `dispose` function is supposed to drop all references to other
* objects, but keep the instance otherwise intact, so that client method
* invocations still work. It may be run multiple times (due to reference
* loops). Before returning, `dispose` should chain up to the `dispose` method
* of the parent class.
*/
vfunc_dispose(): void;
/**
* instance finalization function, should finish the finalization of
* the instance begun in `dispose` and chain up to the `finalize` method of the
* parent class.
*/
vfunc_finalize(): void;
/**
* the generic getter for all properties of this type. Should be
* overridden for every type with properties.
* @param property_id
* @param value
* @param pspec
*/
vfunc_get_property(property_id: number, value: GObject.Value | any, pspec: GObject.ParamSpec): void;
/**
* Emits a "notify" signal for the property `property_name` on `object`.
*
* When possible, eg. when signaling a property change from within the class
* that registered the property, you should use g_object_notify_by_pspec()
* instead.
*
* Note that emission of the notify signal may be blocked with
* g_object_freeze_notify(). In this case, the signal emissions are queued
* and will be emitted (in reverse order) when g_object_thaw_notify() is
* called.
* @param pspec
*/
vfunc_notify(pspec: GObject.ParamSpec): void;
/**
* the generic setter for all properties of this type. Should be
* overridden for every type with properties. If implementations of
* `set_property` don't emit property change notification explicitly, this will
* be done implicitly by the type system. However, if the notify signal is
* emitted explicitly, the type system will not emit it a second time.
* @param property_id
* @param value
* @param pspec
*/
vfunc_set_property(property_id: number, value: GObject.Value | any, pspec: GObject.ParamSpec): void;
/**
* Disconnects a handler from an instance so it will not be called during any future or currently ongoing emissions of the signal it has been connected to.
* @param id Handler ID of the handler to be disconnected
*/
disconnect(id: number): void;
/**
* Sets multiple properties of an object at once. The properties argument should be a dictionary mapping property names to values.
* @param properties Object containing the properties to set
*/
set(properties: { [key: string]: any }): void;
/**
* Blocks a handler of an instance so it will not be called during any signal emissions
* @param id Handler ID of the handler to be blocked
*/
block_signal_handler(id: number): void;
/**
* Unblocks a handler so it will be called again during any signal emissions
* @param id Handler ID of the handler to be unblocked
*/
unblock_signal_handler(id: number): void;
/**
* Stops a signal's emission by the given signal name. This will prevent the default handler and any subsequent signal handlers from being invoked.
* @param detailedName Name of the signal to stop emission of
*/
stop_emission_by_name(detailedName: string): void;
}
namespace SystemPrompter {
// Signal callback interfaces
interface NewPrompt {
(): Prompt;
}
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
prompt_type: GObject.GType;
promptType: GObject.GType;
prompting: boolean;
}
}
/**
* A prompter used by implementations of system prompts.
*
* This is a D-Bus service which is rarely implemented. Use [class`SystemPrompt]`
* to display system prompts.
*
* The system prompter service responds to D-Bus requests to create system
* prompts and creates #GcrPrompt type objects to display those prompts.
*
* Pass the GType of the implementation of [iface`Prompt]` to
* [ctor`SystemPrompter`.new].
*/
class SystemPrompter extends GObject.Object {
static $gtype: GObject.GType<SystemPrompter>;
// Properties
/**
* The #GType for prompts created by this prompter. This must be a
* #GcrPrompt implementation.
*/
get prompt_type(): GObject.GType;
/**
* The #GType for prompts created by this prompter. This must be a
* #GcrPrompt implementation.
*/
get promptType(): GObject.GType;
/**
* Whether the prompter is prompting or not.
*/
get prompting(): boolean;
// Constructors
constructor(properties?: Partial<SystemPrompter.ConstructorProps>, ...args: any[]);
_init(...args: any[]): void;
static ['new'](mode: SystemPrompterMode, prompt_type: GObject.GType): SystemPrompter;
// 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: 'new-prompt', callback: (_source: this) => Prompt): number;
connect_after(signal: 'new-prompt', callback: (_source: this) => Prompt): number;
emit(signal: 'new-prompt'): void;
// Methods
/**
* Get the mode for this prompter.
*
* Most system prompters only display one prompt at a time and therefore
* return %GCR_SYSTEM_PROMPTER_SINGLE.
* @returns the prompter mode
*/
get_mode(): SystemPrompterMode;
/**
* Get the #GType for prompts created by this prompter.
*
* The returned #GType will be a #GcrPrompt implementation.
* @returns the prompt #GType
*/
get_prompt_type(): GObject.GType;
/**
* Get whether prompting or not.
* @returns whether prompting or not
*/
get_prompting(): boolean;
/**
* Register this system prompter on the DBus `connection`.
*
* This makes the prompter available for clients to call. The prompter will
* remain registered until gcr_system_prompter_unregister() is called, or the
* prompter is unreferenced.
* @param connection a DBus connection
*/
register(connection: Gio.DBusConnection): void;
/**
* Unregister this system prompter on the DBus `connection`.
*
* The prompter must have previously been registered with gcr_system_prompter_register().
*
* If `wait` is set then this function will wait until all prompts have been closed
* or cancelled. This is usually only used by tests.
* @param wait whether to wait for closing prompts
*/
unregister(wait: boolean): void;
}
type AccessDescriptionClass = typeof AccessDescription;
type CertificateChainClass = typeof CertificateChain;
abstract class CertificateChainPrivate {
static $gtype: GObject.GType<CertificateChainPrivate>;
// Constructors
_init(...args: any[]): void;
}
type CertificateExtensionAuthorityInfoAccessClass = typeof CertificateExtensionAuthorityInfoAccess;
type CertificateExtensionAuthorityKeyIdentifierClass = typeof CertificateExtensionAuthorityKeyIdentifier;
type CertificateExtensionBasicConstraintsClass = typeof CertificateExtensionBasicConstraints;
type CertificateExtensionCertificatePoliciesClass = typeof CertificateExtensionCertificatePolicies;
type CertificateExtensionClass = typeof CertificateExtension;
type CertificateExtensionCrlDistributionPointsClass = typeof CertificateExtensionCrlDistributionPoints;
type CertificateExtensionExtendedKeyUsageClass = typeof CertificateExtensionExtendedKeyUsage;
type CertificateExtensionKeyUsageClass = typeof CertificateExtensionKeyUsage;
type CertificateExtensionListClass = typeof CertificateExtensionList;
type CertificateExtensionSubjectAltNameClass = typeof CertificateExtensionSubjectAltName;
type CertificateExtensionSubjectKeyIdentifierClass = typeof CertificateExtensionSubjectKeyIdentifier;
type CertificateFieldClass = typeof CertificateField;
type CertificateIface = typeof Certificate;
type CertificatePolicyClass = typeof CertificatePolicy;
type CertificatePolicyQualifierClass = typeof CertificatePolicyQualifier;
type CertificateRequestClass = typeof CertificateRequest;
type CertificateSectionClass = typeof CertificateSection;
type DistributionPointClass = typeof DistributionPoint;
type GeneralNameClass = typeof GeneralName;
type GeneralNamesClass = typeof GeneralNames;
type ImportInteractionInterface = typeof ImportInteraction;
type ImporterInterface = typeof Importer;
/**
* A parsed item parsed by a #GcrParser.
*/
abstract class Parsed {
static $gtype: GObject.GType<Parsed>;
// Constructors
_init(...args: any[]): void;
// Static methods
/**
* Unreferences a parsed item which was referenced with gcr_parsed_ref()
* @param parsed a parsed item
*/
static unref(parsed?: any | null): void;
// Methods
/**
* Get the attributes which make up the parsed item.
* @returns the attributes for the item; these are owned by the parsed item and should not be freed
*/
get_attributes(): Gck.Attributes | null;
/**
* Get the raw data block for the parsed item.
* @returns the raw data of the parsed item, or %NULL
*/
get_bytes(): GLib.Bytes;
/**
* Get the raw data block for the parsed item.
* @returns the raw data of the parsed item, or %NULL
*/
get_data(): Uint8Array | null;
/**
* Get the descirption for a parsed item.
* @returns the description
*/
get_description(): string | null;
/**
* Get the filename of the parsed item.
* @returns the filename of the parsed item, or %NULL
*/
get_filename(): string;
/**
* Get the format of the parsed item.
* @returns the data format of the item
*/
get_format(): DataFormat;
/**
* Get the label for the parsed item.
* @returns the label for the item
*/
get_label(): string | null;
/**
* Add a reference to a parsed item. An item may not be shared across threads
* until it has been referenced at least once.
* @returns the parsed item
*/
ref(): Parsed;
}
type ParserClass = typeof Parser;
abstract class ParserPrivate {
static $gtype: GObject.GType<ParserPrivate>;
// Constructors
_init(...args: any[]): void;
}
type Pkcs11CertificateClass = typeof Pkcs11Certificate;
abstract class Pkcs11CertificatePrivate {
static $gtype: GObject.GType<Pkcs11CertificatePrivate>;
// Constructors
_init(...args: any[]): void;
}
type PromptInterface = typeof Prompt;
type SecretExchangeClass = typeof SecretExchange;
abstract class SecretExchangePrivate {
static $gtype: GObject.GType<SecretExchangePrivate>;
// Constructors
_init(...args: any[]): void;
}
type SimpleCertificateClass = typeof SimpleCertificate;
abstract class SimpleCertificatePrivate {
static $gtype: GObject.GType<SimpleCertificatePrivate>;
// Constructors
_init(...args: any[]): void;
}
type SshAskpassClass = typeof SshAskpass;
abstract class SubjectPublicKeyInfo {
static $gtype: GObject.GType<SubjectPublicKeyInfo>;
// Constructors
_init(...args: any[]): void;
// Methods
copy(): SubjectPublicKeyInfo;
free(): void;
/**
* Returns a user-facing description of the algorithm used by the public key.
*/
get_algorithm_description(): string;
/**
* Returns the OID of the algorithm used by the public key.
*/
get_algorithm_oid(): string;
/**
* Returns the raw bytes describing the parameters for the public key's
* algorithm. Their meaning is algorithm-specific
* @returns The raw bytes describing the algorithm's parameters
*/
get_algorithm_parameters_raw(): GLib.Bytes;
/**
* Returns the public key.
* @returns The raw data of the public key
*/
get_key(): GLib.Bytes;
/**
* Returns the size of the public key.
* @returns The key size
*/
get_key_size(): number;
}
type SystemPromptClass = typeof SystemPrompt;
abstract class SystemPromptPrivate {
static $gtype: GObject.GType<SystemPromptPrivate>;
// Constructors
_init(...args: any[]): void;
}
type SystemPrompterClass = typeof SystemPrompter;
abstract class SystemPrompterPrivate {
static $gtype: GObject.GType<SystemPrompterPrivate>;
// Constructors
_init(...args: any[]): void;
}
namespace Certificate {
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
description: string;
expiry_date: GLib.DateTime;
expiryDate: GLib.DateTime;
issuer_name: string;
issuerName: string;
label: string;
subject_name: string;
subjectName: string;
}
}
export interface CertificateNamespace {
$gtype: GObject.GType<Certificate>;
prototype: Certificate;
}
interface Certificate extends GObject.Object {
// Properties
/**
* A readable description for this certificate
*/
get description(): string;
/**
* The expiry date of the certificate
*/
get expiry_date(): GLib.DateTime;
/**
* The expiry date of the certificate
*/
get expiryDate(): GLib.DateTime;
/**
* Common name part of the certificate issuer
*/
get issuer_name(): string;
/**
* Common name part of the certificate issuer
*/
get issuerName(): string;
/**
* A readable label for this certificate.
*/
get label(): string;
get subject_name(): string;
get subjectName(): string;
// Methods
/**
* Get the basic constraints for the certificate if present. If %FALSE is
* returned then no basic constraints are present and the `is_ca` and
* `path_len` arguments are not changed.
* @returns whether basic constraints are present or not
*/
get_basic_constraints(): [boolean, boolean, number];
/**
* Gets the raw DER data for an X.509 certificate.
* @returns raw DER data of the X.509 certificate
*/
get_der_data(): Uint8Array;
/**
* Get the expiry date of this certificate.
* @returns An expiry date of this certificate.
*/
get_expiry_date(): GLib.DateTime | null;
/**
* Calculate the fingerprint for this certificate.
*
* The caller should free the returned data using g_free() when
* it is no longer required.
* @param type the type of algorithm for the fingerprint.
* @returns the raw binary fingerprint
*/
get_fingerprint(type: GLib.ChecksumType | null): Uint8Array | null;
/**
* Calculate the fingerprint for this certificate, and return it
* as a hex string.
*
* The caller should free the returned data using g_free() when
* it is no longer required.
* @param type the type of algorithm for the fingerprint.
* @returns an allocated hex string which contains the fingerprint.
*/
get_fingerprint_hex(type: GLib.ChecksumType | null): string | null;
/**
* Get the list of sections from the certificate that can be shown to the user
* interface.
* @returns A #GList of #GcrCertificateSection
*/
get_interface_elements(): CertificateSection[];
/**
* Get the issued date of this certificate.
* @returns A issued date of this certificate.
*/
get_issued_date(): GLib.DateTime | null;
/**
* Get the common name of the issuer of this certificate.
*
* The string returned should be freed by the caller when no longer
* required.
* @returns The allocated issuer CN, or %NULL if no issuer CN present.
*/
get_issuer_cn(): string | null;
/**
* Get the full issuer DN of the certificate as a (mostly)
* readable string.
*
* The string returned should be freed by the caller when no longer
* required.
* @returns The allocated issuer DN of the certificate.
*/
get_issuer_dn(): string | null;
/**
* Get a name to represent the issuer of this certificate.
*
* This will try to lookup the common name, orianizational unit,
* organization in that order.
* @returns the allocated issuer name, or %NULL if no issuer name
*/
get_issuer_name(): string | null;
/**
* Get a part of the DN of the issuer of this certificate.
*
* Examples of a `part` might be the 'OU' (organizational unit)
* or the 'CN' (common name). Only the value of that part
* of the DN is returned.
*
* The string returned should be freed by the caller when no longer
* required.
* @param part a DN type string or OID.
* @returns the allocated part of the issuer DN, or %NULL if no such part is present
*/
get_issuer_part(part: string): string | null;
/**
* Get the raw DER data for the issuer DN of the certificate.
*
* The data should be freed by using g_free() when no longer required.
* @returns allocated memory containing the raw issuer
*/
get_issuer_raw(): Uint8Array | null;
/**
* Get the key size in bits of the public key represented
* by this certificate.
* @returns The key size of the certificate.
*/
get_key_size(): number;
/**
* Returns the subject public key info (SPKI) of the certificate.
* @returns The SPKI of the certificate.
*/
get_public_key_info(): SubjectPublicKeyInfo;
/**
* Get the raw binary serial number of the certificate.
*
* The caller should free the returned data using g_free() when
* it is no longer required.
* @returns the raw binary serial number.
*/
get_serial_number(): Uint8Array | null;
/**
* Get the serial number of the certificate as a hex string.
*
* The caller should free the returned data using g_free() when
* it is no longer required.
* @returns an allocated string containing the serial number as hex.
*/
get_serial_number_hex(): string | null;
/**
* Get the common name of the subject of this certificate.
*
* The string returned should be freed by the caller when no longer
* required.
* @returns The allocated subject CN, or %NULL if no subject CN present.
*/
get_subject_cn(): string | null;
/**
* Get the full subject DN of the certificate as a (mostly)
* readable string.
*
* The string returned should be freed by the caller when no longer
* required.
* @returns The allocated subject DN of the certificate.
*/
get_subject_dn(): string | null;
/**
* Get a name to represent the subject of this certificate.
*
* This will try to lookup the common name, orianizational unit,
* organization in that order.
* @returns the allocated subject name, or %NULL if no subject name
*/
get_subject_name(): string | null;
/**
* Get a part of the DN of the subject of this certificate.
*
* Examples of a `part` might be the 'OU' (organizational unit)
* or the 'CN' (common name). Only the value of that part
* of the DN is returned.
*
* The string returned should be freed by the caller when no longer
* required.
* @param part a DN type string or OID.
* @returns the allocated part of the subject DN, or %NULL if no such part is present.
*/
get_subject_part(part: string): string | null;
/**
* Get the raw DER data for the subject DN of the certificate.
*
* The data should be freed by using g_free() when no longer required.
* @returns allocated memory containing the raw subject
*/
get_subject_raw(): Uint8Array | null;
/**
* Get the version of the X.509 certificate.
* @returns the version of the certificate
*/
get_version(): number;
/**
* Check if `issuer` could be the issuer of this certificate. This is done by
* comparing the relevant subject and issuer fields. No signature check is
* done. Proper verification of certificates must be done via a crypto
* library.
* @param issuer a possible issuer #GcrCertificate
* @returns whether @issuer could be the issuer of the certificate.
*/
is_issuer(issuer: Certificate): boolean;
/**
* Creates a [class`CertificateExtensionList]` that can be used to inspect the
* extensions of this certificate.
* @returns The certificate's extensions
*/
list_extensions(): CertificateExtensionList;
/**
* Implementers of the #GcrCertificate mixin should call this function to notify
* when the certificate has changed to emit notifications on the various
* properties.
*/
mixin_emit_notify(): void;
// Virtual methods
/**
* Gets the raw DER data for an X.509 certificate.
*/
vfunc_get_der_data(): Uint8Array;
}
export const Certificate: CertificateNamespace & {
new (): Certificate; // This allows `obj instanceof Certificate`
};
namespace ImportInteraction {
// Constructor properties interface
interface ConstructorProps extends Gio.TlsInteraction.ConstructorProps {}
}
export interface ImportInteractionNamespace {
$gtype: GObject.GType<ImportInteraction>;
prototype: ImportInteraction;
}
interface ImportInteraction extends Gio.TlsInteraction {
// Methods
/**
* Supplement attributes before import. This means prompting the user for
* things like labels and the like. The needed attributes will have been passed
* to gcr_import_interaction_supplement_prep().
*
* This method prompts the user and fills in the attributes. If the user or
* cancellable cancels the operation the error should be set with %G_IO_ERROR_CANCELLED.
* @param builder supplemented attributes
* @param cancellable optional cancellable object
* @returns %G_TLS_INTERACTION_HANDLED if successful or %G_TLS_INTERACTION_FAILED
*/
supplement(builder: Gck.Builder, cancellable?: Gio.Cancellable | null): Gio.TlsInteractionResult;
/**
* Asynchronously supplement attributes before import. This means prompting the
* user for things like labels and the like. The needed attributes will have
* been passed to gcr_import_interaction_supplement_prep().
*
* This method prompts the user and fills in the attributes.
* @param builder supplemented attributes
* @param cancellable optional cancellable object
*/
supplement_async(
builder: Gck.Builder,
cancellable?: Gio.Cancellable | null,
): Promise<Gio.TlsInteractionResult>;
/**
* Asynchronously supplement attributes before import. This means prompting the
* user for things like labels and the like. The needed attributes will have
* been passed to gcr_import_interaction_supplement_prep().
*
* This method prompts the user and fills in the attributes.
* @param builder supplemented attributes
* @param cancellable optional cancellable object
* @param callback called when the operation completes
*/
supplement_async(
builder: Gck.Builder,
cancellable: Gio.Cancellable | null,
callback: Gio.AsyncReadyCallback<this> | null,
): void;
/**
* Asynchronously supplement attributes before import. This means prompting the
* user for things like labels and the like. The needed attributes will have
* been passed to gcr_import_interaction_supplement_prep().
*
* This method prompts the user and fills in the attributes.
* @param builder supplemented attributes
* @param cancellable optional cancellable object
* @param callback called when the operation completes
*/
supplement_async(
builder: Gck.Builder,
cancellable?: Gio.Cancellable | null,
callback?: Gio.AsyncReadyCallback<this> | null,
): Promise<Gio.TlsInteractionResult> | void;
/**
* Complete operation to asynchronously supplement attributes before import.
*
* If the user or cancellable cancels the operation the error should be set
* with %G_IO_ERROR_CANCELLED.
* @param result the asynchronous result
* @returns %G_TLS_INTERACTION_HANDLED if successful or %G_TLS_INTERACTION_FAILED
*/
supplement_finish(result: Gio.AsyncResult): Gio.TlsInteractionResult;
/**
* Prepare for supplementing the given attributes before import. This means
* prompting the user for things like labels and the like. The attributes
* will contain attributes for values that the importer needs, either empty
* or prefilled with suggested values.
*
* This method does not prompt the user, but rather just prepares the
* interaction that these are the attributes that are needed.
* @param builder attributes to supplement
*/
supplement_prep(builder: Gck.Builder): void;
// Virtual methods
/**
* Supplement attributes before import. This means prompting the user for
* things like labels and the like. The needed attributes will have been passed
* to gcr_import_interaction_supplement_prep().
*
* This method prompts the user and fills in the attributes. If the user or
* cancellable cancels the operation the error should be set with %G_IO_ERROR_CANCELLED.
* @param builder supplemented attributes
* @param cancellable optional cancellable object
*/
vfunc_supplement(builder: Gck.Builder, cancellable?: Gio.Cancellable | null): Gio.TlsInteractionResult;
/**
* Asynchronously supplement attributes before import. This means prompting the
* user for things like labels and the like. The needed attributes will have
* been passed to gcr_import_interaction_supplement_prep().
*
* This method prompts the user and fills in the attributes.
* @param builder supplemented attributes
* @param cancellable optional cancellable object
* @param callback called when the operation completes
*/
vfunc_supplement_async(
builder: Gck.Builder,
cancellable?: Gio.Cancellable | null,
callback?: Gio.AsyncReadyCallback<this> | null,
): void;
/**
* Complete operation to asynchronously supplement attributes before import.
*
* If the user or cancellable cancels the operation the error should be set
* with %G_IO_ERROR_CANCELLED.
* @param result the asynchronous result
*/
vfunc_supplement_finish(result: Gio.AsyncResult): Gio.TlsInteractionResult;
/**
* Prepare for supplementing the given attributes before import. This means
* prompting the user for things like labels and the like. The attributes
* will contain attributes for values that the importer needs, either empty
* or prefilled with suggested values.
*
* This method does not prompt the user, but rather just prepares the
* interaction that these are the attributes that are needed.
* @param builder attributes to supplement
*/
vfunc_supplement_prep(builder: Gck.Builder): void;
}
export const ImportInteraction: ImportInteractionNamespace & {
new (): ImportInteraction; // This allows `obj instanceof ImportInteraction`
};
namespace Importer {
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
interaction: Gio.TlsInteraction;
label: string;
uri: string;
}
}
export interface ImporterNamespace {
$gtype: GObject.GType<Importer>;
prototype: Importer;
/**
* Create a set of importers which can import this parsed item.
*
* The parsed item is represented by the state of the [class`Gcr`.Parser] at the
* time of calling this method.
* @param parsed a parser with a parsed item to import
*/
create_for_parsed(parsed: Parsed): Importer[];
/**
* Queues an additional item to be imported in all compattible importers
* in the set. The parsed item is represented by the state of the #GcrParser
* at the time of calling this method.
*
* If the parsed item is incompatible with an importer, then that the item
* will not be queued on that importer.
* @param importers a set of importers
* @param parsed a parsed item
*/
queue_and_filter_for_parsed(importers: Importer[], parsed: Parsed): Importer[];
/**
* Register an importer to handle parsed items that match the given attributes.
* @param importer_type the GType of the importer being registered
* @param attrs the attributes that this importer is compatible with
*/
register(importer_type: GObject.GType, attrs: Gck.Attributes): void;
/**
* Register built-in PKCS#11 and GnuPG importers.
*/
register_well_known(): void;
}
interface Importer extends GObject.Object {
// Properties
/**
* The interaction for the importer.
*/
get interaction(): Gio.TlsInteraction;
set interaction(val: Gio.TlsInteraction);
/**
* The label for the importer.
*/
get label(): string;
/**
* The URI of the location imported to.
*/
get uri(): string;
// Methods
/**
* Get the interaction used to prompt the user when needed by this
* importer.
* @returns the interaction or %NULL
*/
get_interaction(): Gio.TlsInteraction | null;
/**
* Import the queued items in the importer. This function returns immediately
* and completes asynchronously.
* @param cancellable a #GCancellable, or %NULL
*/
import_async(cancellable?: Gio.Cancellable | null): Promise<boolean>;
/**
* Import the queued items in the importer. This function returns immediately
* and completes asynchronously.
* @param cancellable a #GCancellable, or %NULL
* @param callback called when the operation completes
*/
import_async(cancellable: Gio.Cancellable | null, callback: Gio.AsyncReadyCallback<this> | null): void;
/**
* Import the queued items in the importer. This function returns immediately
* and completes asynchronously.
* @param cancellable a #GCancellable, or %NULL
* @param callback called when the operation completes
*/
import_async(
cancellable?: Gio.Cancellable | null,
callback?: Gio.AsyncReadyCallback<this> | null,
): Promise<boolean> | void;
/**
* Complete an asynchronous operation to import queued items.
* @param result an asynchronous result
* @returns whether the import succeeded or failed
*/
import_finish(result: Gio.AsyncResult): boolean;
/**
* Queues an additional item to be imported. The parsed item is represented
* by the state of the [class`Parser]` at the time of calling this method.
*
* If the parsed item is incompatible with the importer, then this will
* fail and the item will not be queued.
* @param parsed a parsed item to import
* @returns whether the item was queued or not
*/
queue_for_parsed(parsed: Parsed): boolean;
/**
* Set the interaction used to prompt the user when needed by this
* importer.
* @param interaction the interaction used by the importer
*/
set_interaction(interaction: Gio.TlsInteraction): void;
// Virtual methods
/**
* Import the queued items in the importer. This function returns immediately
* and completes asynchronously.
* @param cancellable a #GCancellable, or %NULL
* @param callback called when the operation completes
*/
vfunc_import_async(
cancellable?: Gio.Cancellable | null,
callback?: Gio.AsyncReadyCallback<this> | null,
): void;
/**
* Complete an asynchronous operation to import queued items.
* @param result an asynchronous result
*/
vfunc_import_finish(result: Gio.AsyncResult): boolean;
/**
* Queues an additional item to be imported. The parsed item is represented
* by the state of the [class`Parser]` at the time of calling this method.
*
* If the parsed item is incompatible with the importer, then this will
* fail and the item will not be queued.
* @param parsed a parsed item to import
*/
vfunc_queue_for_parsed(parsed: Parsed): boolean;
}
export const Importer: ImporterNamespace & {
new (): Importer; // This allows `obj instanceof Importer`
};
namespace Prompt {
// Constructor properties interface
interface ConstructorProps extends GObject.Object.ConstructorProps {
caller_window: string;
callerWindow: string;
cancel_label: string;
cancelLabel: string;
choice_chosen: boolean;
choiceChosen: boolean;
choice_label: string;
choiceLabel: string;
continue_label: string;
continueLabel: string;
description: string;
message: string;
password_new: boolean;
passwordNew: boolean;
password_strength: number;
passwordStrength: number;
title: string;
warning: string;
}
}
export interface PromptNamespace {
$gtype: GObject.GType<Prompt>;
prototype: Prompt;
}
interface Prompt extends GObject.Object {
// Properties
/**
* The string handle of the caller's window.
*
* The caller window indicates to the prompt which window is prompting the
* user. The prompt may choose to ignore this information or use it in whatever
* way it sees fit.
*
* In X11, this will be a stringified version of the XWindow handle; in
* Wayland this is the result of an export using the XDG foreign
* protocol.
*/
get caller_window(): string;
set caller_window(val: string);
/**
* The string handle of the caller's window.
*
* The caller window indicates to the prompt which window is prompting the
* user. The prompt may choose to ignore this information or use it in whatever
* way it sees fit.
*
* In X11, this will be a stringified version of the XWindow handle; in
* Wayland this is the result of an export using the XDG foreign
* protocol.
*/
get callerWindow(): string;
set callerWindow(val: string);
/**
* The label for the cancel button in the prompt.
*/
get cancel_label(): string;
set cancel_label(val: string);
/**
* The label for the cancel button in the prompt.
*/
get cancelLabel(): string;
set cancelLabel(val: string);
/**
* Whether the additional choice is chosen or not.
*
* The additional choice would have been setup using #GcrPrompt:choice-label.
*/
get choice_chosen(): boolean;
set choice_chosen(val: boolean);
/**
* Whether the additional choice is chosen or not.
*
* The additional choice would have been setup using #GcrPrompt:choice-label.
*/
get choiceChosen(): boolean;
set choiceChosen(val: boolean);
/**
* The label for the additional choice.
*
* If this is a non-%NULL value then an additional boolean choice will be
* displayed by the prompt allowing the user to select or deselect it.
*
* If %NULL, then no additional choice is displayed.
*
* The initial value of the choice can be set with #GcrPrompt:choice-chosen.
*/
get choice_label(): string;
set choice_label(val: string);
/**
* The label for the additional choice.
*
* If this is a non-%NULL value then an additional boolean choice will be
* displayed by the prompt allowing the user to select or deselect it.
*
* If %NULL, then no additional choice is displayed.
*
* The initial value of the choice can be set with #GcrPrompt:choice-chosen.
*/
get choiceLabel(): string;
set choiceLabel(val: string);
/**
* The label for the continue button in the prompt.
*/
get continue_label(): string;
set continue_label(val: string);
/**
* The label for the continue button in the prompt.
*/
get continueLabel(): string;
set continueLabel(val: string);
/**
* The detailed description of the prompt.
*
* A prompt implementation may choose not to display this detailed description.
* The prompt message should contain relevant information.
*/
get description(): string;
set description(val: string);
/**
* The prompt message for the user.
*
* A prompt implementation should always display this message.
*/
get message(): string;
set message(val: string);
/**
* Whether the prompt will prompt for a new password.
*
* This will cause the prompt implementation to ask the user to confirm the
* password and/or display other relevant user interface for creating a new
* password.
*/
get password_new(): boolean;
set password_new(val: boolean);
/**
* Whether the prompt will prompt for a new password.
*
* This will cause the prompt implementation to ask the user to confirm the
* password and/or display other relevant user interface for creating a new
* password.
*/
get passwordNew(): boolean;
set passwordNew(val: boolean);
/**
* Indication of the password strength.
*
* Prompts will return a zero value if the password is empty, and a value
* greater than zero if the password has any characters.
*
* This is only valid after a successful prompt for a password.
*/
get password_strength(): number;
/**
* Indication of the password strength.
*
* Prompts will return a zero value if the password is empty, and a value
* greater than zero if the password has any characters.
*
* This is only valid after a successful prompt for a password.
*/
get passwordStrength(): number;
/**
* The title of the prompt.
*
* A prompt implementation may choose not to display the prompt title. The
* #GcrPrompt:message should contain relevant information.
*/
get title(): string;
set title(val: string);
/**
* A prompt warning displayed on the prompt, or %NULL for no warning.
*
* This is a warning like "The password is incorrect." usually displayed to the
* user about a previous 'unsuccessful' prompt.
*/
get warning(): string;
set warning(val: string);
// Methods
/**
* Closes the prompt so that in can no longer be used to prompt. The various
* prompt methods will return results as if the user dismissed the prompt.
*
* The prompt may also be closed by the implementor of the prompt object.
*
* This emits the [signal`Prompt:`:prompt-close] signal on the prompt object.
*/
close(): void;
/**
* Prompts for confirmation asking a cancel/continue style question.
* Set the various properties on the prompt before calling this function to
* represent the question correctly.
*
* This method will block until the a response is returned from the prompter.
*
* %GCR_PROMPT_REPLY_CONTINUE will be returned if the user confirms the prompt. The
* return value will also be %GCR_PROMPT_REPLY_CANCEL if the user cancels or if
* an error occurs. Check the `error` argument to tell the difference.
* @param cancellable optional cancellation object
* @returns the reply from the prompt
*/
confirm(cancellable?: Gio.Cancellable | null): PromptReply;
/**
* Prompts for confirmation asking a cancel/continue style question.
* Set the various properties on the prompt before calling this method to
* represent the question correctly.
*
* This method will return immediately and complete asynchronously.
* @param cancellable optional cancellation object
*/
confirm_async(cancellable?: Gio.Cancellable | null): Promise<PromptReply>;
/**
* Prompts for confirmation asking a cancel/continue style question.
* Set the various properties on the prompt before calling this method to
* represent the question correctly.
*
* This method will return immediately and complete asynchronously.
* @param cancellable optional cancellation object
* @param callback called when the operation completes
*/
confirm_async(cancellable: Gio.Cancellable | null, callback: Gio.AsyncReadyCallback<this> | null): void;
/**
* Prompts for confirmation asking a cancel/continue style question.
* Set the various properties on the prompt before calling this method to
* represent the question correctly.
*
* This method will return immediately and complete asynchronously.
* @param cancellable optional cancellation object
* @param callback called when the operation completes
*/
confirm_async(
cancellable?: Gio.Cancellable | null,
callback?: Gio.AsyncReadyCallback<this> | null,
): Promise<PromptReply> | void;
/**
* Complete an operation to prompt for confirmation.
*
* %GCR_PROMPT_REPLY_CONTINUE will be returned if the user confirms the prompt. The
* return value will also be %GCR_PROMPT_REPLY_CANCEL if the user cancels or if
* an error occurs. Check the `error` argument to tell the difference.
* @param result asynchronous result passed to callback
* @returns the reply from the prompt
*/
confirm_finish(result: Gio.AsyncResult): PromptReply;
/**
* Prompts for confirmation asking a cancel/continue style question.
* Set the various properties on the prompt before calling this function to
* represent the question correctly.
*
* This method will block until the a response is returned from the prompter
* and will run a main loop similar to a `gtk_dialog_run()`. The application
* will remain responsive but care must be taken to handle reentrancy issues.
*
* %GCR_PROMPT_REPLY_CONTINUE will be returned if the user confirms the prompt. The
* return value will also be %GCR_PROMPT_REPLY_CANCEL if the user cancels or if
* an error occurs. Check the `error` argument to tell the difference.
* @param cancellable optional cancellation object
* @returns the reply from the prompt
*/
confirm_run(cancellable?: Gio.Cancellable | null): PromptReply;
/**
* Get the string handle of the caller's window.
*
* The caller window indicates to the prompt which window is prompting the
* user. The prompt may choose to ignore this information or use it in whatever
* way it sees fit.
* @returns a newly allocated string containing the string handle of the window.
*/
get_caller_window(): string;
/**
* Get the label for the cancel button.
*
* This is the button that results in a %GCR_PROMPT_REPLY_CANCEL reply
* from the prompt.
* @returns a newly allocated string containing the label
*/
get_cancel_label(): string;
/**
* Get whether the additional choice was chosen or not.
*
* The additional choice would have been setup using
* gcr_prompt_set_choice_label().
* @returns whether chosen
*/
get_choice_chosen(): boolean;
/**
* Get the label for the additional choice.
*
* This will be %NULL if no additional choice is being displayed.
* @returns a newly allocated string containing the additional choice or %NULL
*/
get_choice_label(): string;
/**
* Get the label for the continue button.
*
* This is the button that results in a %GCR_PROMPT_REPLY_CONTINUE reply
* from the prompt.
* @returns a newly allocated string containing the label
*/
get_continue_label(): string;
/**
* Get the detailed description of the prompt.
*
* A prompt implementation may choose not to display this detailed description.
* The prompt message should contain relevant information.
* @returns a newly allocated string containing the detailed description of the prompt
*/
get_description(): string;
/**
* Gets the prompt message for the user.
*
* A prompt implementation should always display this message.
* @returns a newly allocated string containing the detailed description of the prompt
*/
get_message(): string;
/**
* Get whether the prompt will prompt for a new password.
*
* This will cause the prompt implementation to ask the user to confirm the
* password and/or display other relevant user interface for creating a new
* password.
* @returns whether in new password mode or not
*/
get_password_new(): boolean;
/**
* Get indication of the password strength.
*
* Prompts will return a zero value if the password is empty, and a value
* greater than zero if the password has any characters.
*
* This is only valid after a successful prompt for a password.
* @returns zero if the password is empty, greater than zero if not
*/
get_password_strength(): number;
/**
* Gets the title of the prompt.
*
* A prompt implementation may choose not to display the prompt title. The
* prompt message should contain relevant information.
* @returns a newly allocated string containing the prompt title.
*/
get_title(): string;
/**
* Get a prompt warning displayed on the prompt.
*
* This is a warning like "The password is incorrect." usually displayed to the
* user about a previous 'unsuccessful' prompt.
*
* If this string is %NULL then no warning is displayed.
* @returns a newly allocated string containing the prompt warning, or %NULL if no warning
*/
get_warning(): string;
/**
* Prompts for password. Set the various properties on the prompt before calling
* this method to explain which password should be entered.
*
* This method will block until the a response is returned from the prompter.
*
* A password will be returned if the user enters a password successfully.
* The returned password is valid until the next time a method is called
* to display another prompt.
*
* %NULL will be returned if the user cancels or if an error occurs. Check the
* `error` argument to tell the difference.
* @param cancellable optional cancellation object
* @returns the password owned by the prompt, or %NULL
*/
password(cancellable?: Gio.Cancellable | null): string;
/**
* Prompts for password. Set the various properties on the prompt before calling
* this method to explain which password should be entered.
*
* This method will return immediately and complete asynchronously.
* @param cancellable optional cancellation object
*/
password_async(cancellable?: Gio.Cancellable | null): Promise<string>;
/**
* Prompts for password. Set the various properties on the prompt before calling
* this method to explain which password should be entered.
*
* This method will return immediately and complete asynchronously.
* @param cancellable optional cancellation object
* @param callback called when the operation completes
*/
password_async(cancellable: Gio.Cancellable | null, callback: Gio.AsyncReadyCallback<this> | null): void;
/**
* Prompts for password. Set the various properties on the prompt before calling
* this method to explain which password should be entered.
*
* This method will return immediately and complete asynchronously.
* @param cancellable optional cancellation object
* @param callback called when the operation completes
*/
password_async(
cancellable?: Gio.Cancellable | null,
callback?: Gio.AsyncReadyCallback<this> | null,
): Promise<string> | void;
/**
* Complete an operation to prompt for a password.
*
* A password will be returned if the user enters a password successfully.
* The returned password is valid until the next time a method is called
* to display another prompt.
*
* %NULL will be returned if the user cancels or if an error occurs. Check the
* `error` argument to tell the difference.
* @param result asynchronous result passed to callback
* @returns the password owned by the prompt, or %NULL
*/
password_finish(result: Gio.AsyncResult): string;
/**
* Prompts for password. Set the various properties on the prompt before calling
* this method to explain which password should be entered.
*
* This method will block until the a response is returned from the prompter
* and will run a main loop similar to a gtk_dialog_run(). The application
* will remain responsive but care must be taken to handle reentrancy issues.
*
* A password will be returned if the user enters a password successfully.
* The returned password is valid until the next time a method is called
* to display another prompt.
*
* %NULL will be returned if the user cancels or if an error occurs. Check the
* `error` argument to tell the difference.
* @param cancellable optional cancellation object
* @returns the password owned by the prompt, or %NULL
*/
password_run(cancellable?: Gio.Cancellable | null): string;
/**
* Reset the contents and properties of the prompt.
*/
reset(): void;
/**
* Set the string handle of the caller's window.
*
* The caller window indicates to the prompt which window is prompting the
* user. The prompt may choose to ignore this information or use it in whatever
* way it sees fit.
* @param window_id the window id
*/
set_caller_window(window_id: string): void;
/**
* Set the label for the continue button.
*
* This is the button that results in a %GCR_PROMPT_REPLY_CANCEL reply
* from the prompt.
* @param cancel_label the label
*/
set_cancel_label(cancel_label: string): void;
/**
* Set whether the additional choice is chosen or not.
*
* The additional choice should be set up using gcr_prompt_set_choice_label().
* @param chosen whether chosen
*/
set_choice_chosen(chosen: boolean): void;
/**
* Set the label for the additional choice.
*
* If this is a non-%NULL value then an additional boolean choice will be
* displayed by the prompt allowing the user to select or deselect it.
*
* The initial value of the choice can be set with the
* gcr_prompt_set_choice_label() method.
*
* If this is %NULL, then no additional choice is being displayed.
* @param choice_label the additional choice or %NULL
*/
set_choice_label(choice_label?: string | null): void;
/**
* Set the label for the continue button.
*
* This is the button that results in a %GCR_PROMPT_REPLY_CONTINUE reply
* from the prompt.
* @param continue_label the label
*/
set_continue_label(continue_label: string): void;
/**
* Set the detailed description of the prompt.
*
* A prompt implementation may choose not to display this detailed description.
* Use gcr_prompt_set_message() to set a general message containing relevant
* information.
* @param description the detailed description
*/
set_description(description: string): void;
/**
* Sets the prompt message for the user.
*
* A prompt implementation should always display this message.
* @param message the prompt message
*/
set_message(message: string): void;
/**
* Set whether the prompt will prompt for a new password.
*
* This will cause the prompt implementation to ask the user to confirm the
* password and/or display other relevant user interface for creating a new
* password.
* @param new_password whether in new password mode or not
*/
set_password_new(new_password: boolean): void;
/**
* Sets the title of the prompt.
*
* A prompt implementation may choose not to display the prompt title. The
* prompt message should contain relevant information.
* @param title the prompt title
*/
set_title(title: string): void;
/**
* Set a prompt warning displayed on the prompt.
*
* This is a warning like "The password is incorrect." usually displayed to the
* user about a previous 'unsuccessful' prompt.
*
* If this string is %NULL then no warning is displayed.
* @param warning the warning or %NULL
*/
set_warning(warning?: string | null): void;
// Virtual methods
/**
* close a prompt
*/
vfunc_prompt_close(): void;
/**
* Prompts for confirmation asking a cancel/continue style question.
* Set the various properties on the prompt before calling this method to
* represent the question correctly.
*
* This method will return immediately and complete asynchronously.
* @param cancellable optional cancellation object
* @param callback called when the operation completes
*/
vfunc_prompt_confirm_async(
cancellable?: Gio.Cancellable | null,
callback?: Gio.AsyncReadyCallback<this> | null,
): void;
/**
* Complete an operation to prompt for confirmation.
*
* %GCR_PROMPT_REPLY_CONTINUE will be returned if the user confirms the prompt. The
* return value will also be %GCR_PROMPT_REPLY_CANCEL if the user cancels or if
* an error occurs. Check the `error` argument to tell the difference.
* @param result asynchronous result passed to callback
*/
vfunc_prompt_confirm_finish(result: Gio.AsyncResult): PromptReply;
/**
* Prompts for password. Set the various properties on the prompt before calling
* this method to explain which password should be entered.
*
* This method will return immediately and complete asynchronously.
* @param cancellable optional cancellation object
* @param callback called when the operation completes
*/
vfunc_prompt_password_async(
cancellable?: Gio.Cancellable | null,
callback?: Gio.AsyncReadyCallback<this> | null,
): void;
/**
* Complete an operation to prompt for a password.
*
* A password will be returned if the user enters a password successfully.
* The returned password is valid until the next time a method is called
* to display another prompt.
*
* %NULL will be returned if the user cancels or if an error occurs. Check the
* `error` argument to tell the difference.
* @param result asynchronous result passed to callback
*/
vfunc_prompt_password_finish(result: Gio.AsyncResult): string;
}
export const Prompt: PromptNamespace & {
new (): Prompt; // This allows `obj instanceof Prompt`
};
/**
* 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 Gcr;
}
declare module 'gi://Gcr' {
import Gcr4 from 'gi://Gcr?version=4';
export default Gcr4;
}
// END