/*!
 * Copyright 2014 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import { Metadata, ServiceObject } from '@google-cloud/common';
import { Record } from './record';
import { Zone } from './zone';
export interface CreateChangeRequest {
    add?: Record | Record[];
    delete?: Record | Record[];
}
export type CreateChangeResponse = [Change, Metadata];
export interface CreateChangeCallback {
    (err: Error | null, change?: Change | null, apiResponse?: Metadata): void;
}
/**
 * @class
 *
 * @param {Zone} zone The parent zone object.
 * @param {string} id ID of the change.
 *
 * @example
 * const {DNS} = require('@google-cloud/dns');
 * const dns = new DNS();
 * const zone = dns.zone('zone-id');
 * const change = zone.change('change-id');
 */
export declare class Change extends ServiceObject {
    parent: Zone;
    constructor(zone: Zone, id?: string);
    create(config?: CreateChangeRequest): Promise<CreateChangeResponse>;
    create(config: CreateChangeRequest, callback: CreateChangeCallback): void;
    create(callback: CreateChangeCallback): void;
}
