1/* 2 * Copyright (c) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"), 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16import type accessibility from './@ohos.accessibility'; 17import type { AsyncCallback, Callback } from './basic'; 18 19/** 20 * Configuration of the accessibility. 21 * 22 * @namespace config 23 * @syscap SystemCapability.BarrierFree.Accessibility.Core 24 * @systemapi 25 * @since 9 26 */ 27declare namespace config { 28 /** 29 * Indicates the configuration of high-contrast text. 30 * 31 * @syscap SystemCapability.BarrierFree.Accessibility.Core 32 * @systemapi 33 * @since 9 34 */ 35 let highContrastText: Config<boolean>; 36 /** 37 * Indicates the configuration of invert color. 38 * 39 * @syscap SystemCapability.BarrierFree.Accessibility.Core 40 * @systemapi 41 * @since 9 42 */ 43 let invertColor: Config<boolean>; 44 /** 45 * Indicates the configuration of daltonization color filter. 46 * 47 * @syscap SystemCapability.BarrierFree.Accessibility.Core 48 * @systemapi 49 * @since 9 50 */ 51 let daltonizationColorFilter: Config<DaltonizationColorFilter>; 52 /** 53 * Indicates the configuration of content timeout. 54 * 55 * @syscap SystemCapability.BarrierFree.Accessibility.Core 56 * @systemapi 57 * @since 9 58 */ 59 let contentTimeout: Config<number>; 60 /** 61 * Indicates the configuration of animation state. 62 * 63 * @syscap SystemCapability.BarrierFree.Accessibility.Core 64 * @systemapi 65 * @since 9 66 */ 67 let animationOff: Config<boolean>; 68 /** 69 * Indicates the configuration of brightness discount. 70 * 71 * @syscap SystemCapability.BarrierFree.Accessibility.Core 72 * @systemapi 73 * @since 9 74 */ 75 let brightnessDiscount: Config<number>; 76 /** 77 * Indicates the configuration of screen magnifier. 78 * 79 * @syscap SystemCapability.BarrierFree.Accessibility.Core 80 * @systemapi 81 * @since 9 82 */ 83 let screenMagnifier: Config<boolean>; 84 /** 85 * Indicates the configuration of audio mono. 86 * 87 * @syscap SystemCapability.BarrierFree.Accessibility.Core 88 * @systemapi 89 * @since 9 90 */ 91 let audioMono: Config<boolean>; 92 /** 93 * Indicates the configuration of audio balance. 94 * 95 * @syscap SystemCapability.BarrierFree.Accessibility.Core 96 * @systemapi 97 * @since 9 98 */ 99 let audioBalance: Config<number>; 100 /** 101 * Indicates the configuration of mouse key state. 102 * 103 * @syscap SystemCapability.BarrierFree.Accessibility.Core 104 * @systemapi 105 * @since 9 106 */ 107 let mouseKey: Config<boolean>; 108 /** 109 * Indicates the configuration of mouse auto click. 110 * 111 * @syscap SystemCapability.BarrierFree.Accessibility.Core 112 * @systemapi 113 * @since 9 114 */ 115 let mouseAutoClick: Config<number>; 116 /** 117 * Indicates the configuration of short key state. 118 * 119 * @syscap SystemCapability.BarrierFree.Accessibility.Core 120 * @systemapi 121 * @since 9 122 */ 123 let shortkey: Config<boolean>; 124 /** 125 * Indicates the configuration of short key target. 126 * 127 * @syscap SystemCapability.BarrierFree.Accessibility.Core 128 * @systemapi 129 * @since 9 130 */ 131 let shortkeyTarget: Config<string>; 132 /** 133 * Indicates the configuration of captions state. 134 * 135 * @syscap SystemCapability.BarrierFree.Accessibility.Core 136 * @systemapi 137 * @since 9 138 */ 139 let captions: Config<boolean>; 140 /** 141 * Indicates the configuration of captions style. 142 * 143 * @syscap SystemCapability.BarrierFree.Accessibility.Core 144 * @systemapi 145 * @since 9 146 */ 147 let captionsStyle: Config<accessibility.CaptionsStyle>; 148 149 /** 150 * Enable the accessibility extension ability. 151 * 152 * @param { string } name Indicates the accessibility extension name, in "bundleName/abilityName" format. 153 * @param { Array<accessibility.Capability> } capability Indicates the ability. 154 * @returns { Promise<void> } 155 * @throws { BusinessError } 201 - Permission denied. 156 * @throws { BusinessError } 401 - Input parameter error. 157 * @throws { BusinessError } 9300001 - Invalid bundle name or ability name. 158 * @throws { BusinessError } 9300002 - Target ability already enabled. 159 * @syscap SystemCapability.BarrierFree.Accessibility.Core 160 * @systemapi 161 * @since 9 162 */ 163 function enableAbility(name: string, capability: Array<accessibility.Capability>): Promise<void>; 164 165 /** 166 * Enable the accessibility extension ability. 167 * 168 * @param { string } name Indicates the accessibility extension name, in "bundleName/abilityName" format. 169 * @param { Array<accessibility.Capability> } capability Indicates the ability. 170 * @param { AsyncCallback<void> } callback 171 * @throws { BusinessError } 201 - Permission denied. 172 * @throws { BusinessError } 202 - Not system App. 173 * @throws { BusinessError } 401 - Input parameter error. 174 * @throws { BusinessError } 9300001 - Invalid bundle name or ability name. 175 * @throws { BusinessError } 9300002 - Target ability already enabled. 176 * @syscap SystemCapability.BarrierFree.Accessibility.Core 177 * @systemapi 178 * @since 9 179 */ 180 function enableAbility( 181 name: string, 182 capability: Array<accessibility.Capability>, 183 callback: AsyncCallback<void> 184 ): void; 185 186 /** 187 * Disable the accessibility extension ability. 188 * 189 * @param { string } name Indicates the accessibility extension name, in "bundleName/abilityName" format. 190 * @returns { Promise<void> } 191 * @throws { BusinessError } 201 - Permission denied. 192 * @throws { BusinessError } 401 - Input parameter error. 193 * @throws { BusinessError } 9300001 - Invalid bundle name or ability name. 194 * @syscap SystemCapability.BarrierFree.Accessibility.Core 195 * @systemapi 196 * @since 9 197 */ 198 function disableAbility(name: string): Promise<void>; 199 200 /** 201 * Disable the accessibility extension ability. 202 * 203 * @param { string } name Indicates the accessibility extension name, in "bundleName/abilityName" format. 204 * @param { AsyncCallback<void> } callback 205 * @throws { BusinessError } 201 - Permission denied. 206 * @throws { BusinessError } 202 - Not system App. 207 * @throws { BusinessError } 401 - Input parameter error. 208 * @throws { BusinessError } 9300001 - Invalid bundle name or ability name. 209 * @syscap SystemCapability.BarrierFree.Accessibility.Core 210 * @systemapi 211 * @since 9 212 */ 213 function disableAbility(name: string, callback: AsyncCallback<void>): void; 214 215 /** 216 * Register the listener that watches for changes in the enabled status of accessibility extensions. 217 * 218 * @param { 'enabledAccessibilityExtensionListChange' } type Indicates the type of event. 219 * @param { Callback<void> } callback Indicates the listener. 220 * @throws { BusinessError } 401 - Input parameter error. 221 * @syscap SystemCapability.BarrierFree.Accessibility.Core 222 * @systemapi 223 * @since 9 224 */ 225 function on(type: 'enabledAccessibilityExtensionListChange', callback: Callback<void>): void; 226 227 /** 228 * Deregister listener that watches for changes in the enabled status of accessibility extensions. 229 * 230 * @param { 'enabledAccessibilityExtensionListChange' } type Indicates the type of event. 231 * @param { Callback<void> } callback Indicates the listener. 232 * @throws { BusinessError } 401 - Input parameter error. 233 * @syscap SystemCapability.BarrierFree.Accessibility.Core 234 * @systemapi 235 * @since 9 236 */ 237 function off(type: 'enabledAccessibilityExtensionListChange', callback?: Callback<void>): void; 238 239 /** 240 * Indicates setting, getting, and listening to changes in configuration. 241 * 242 * @typedef Config 243 * @syscap SystemCapability.BarrierFree.Accessibility.Core 244 * @systemapi 245 * @since 9 246 */ 247 interface Config<T> { 248 /** 249 * Setting configuration value. 250 * 251 * @param { T } value Indicates the value. 252 * @returns { Promise<void> } 253 * @throws { BusinessError } 201 - Permission denied. 254 * @throws { BusinessError } 401 - Input parameter error. 255 * @syscap SystemCapability.BarrierFree.Accessibility.Core 256 * @systemapi 257 * @since 9 258 */ 259 set(value: T): Promise<void>; 260 261 /** 262 * Setting configuration value. 263 * 264 * @param { T } value Indicates the value. 265 * @param { AsyncCallback<void> } callback 266 * @throws { BusinessError } 201 - Permission denied. 267 * @throws { BusinessError } 202 - Not system App. 268 * @throws { BusinessError } 401 - Input parameter error. 269 * @syscap SystemCapability.BarrierFree.Accessibility.Core 270 * @systemapi 271 * @since 9 272 */ 273 set(value: T, callback: AsyncCallback<void>): void; 274 275 /** 276 * Getting configuration value. 277 * 278 * @returns { Promise<T> } 279 * @throws { BusinessError } 201 - Permission denied. 280 * @syscap SystemCapability.BarrierFree.Accessibility.Core 281 * @systemapi 282 * @since 9 283 */ 284 get(): Promise<T>; 285 286 /** 287 * Getting configuration value. 288 * 289 * @param { AsyncCallback<T> } callback 290 * @throws { BusinessError } 201 - Permission denied. 291 * @throws { BusinessError } 202 - Not system App. 292 * @syscap SystemCapability.BarrierFree.Accessibility.Core 293 * @systemapi 294 * @since 9 295 */ 296 get(callback: AsyncCallback<T>): void; 297 298 /** 299 * Register the listener to listen for configuration changes. 300 * 301 * @param { Callback<T> } callback Indicates the listener. 302 * @throws { BusinessError } 201 - Permission denied. 303 * @throws { BusinessError } 401 - Input parameter error. 304 * @syscap SystemCapability.BarrierFree.Accessibility.Core 305 * @systemapi 306 * @since 9 307 */ 308 on(callback: Callback<T>): void; 309 310 /** 311 * Deregister the listener to listen for configuration changes. 312 * 313 * @param { Callback<T> } callback Indicates the listener. 314 * @syscap SystemCapability.BarrierFree.Accessibility.Core 315 * @systemapi 316 * @since 9 317 */ 318 off(callback?: Callback<T>): void; 319 } 320 321 /** 322 * Indicates the type of daltonization color filter. 323 * 324 * @systemapi 325 */ 326 type DaltonizationColorFilter = 'Normal' | 'Protanomaly' | 'Deuteranomaly' | 'Tritanomaly'; 327} 328export default config; 329